Hur kan klass B uppdatera fälten i klass A helt automatiskt? - Statiska fält i Java?
Hej!
Jag bygger webbapplikationer med Raspberry Pi + Java för att styra GPIO pinnarna. Då använder jag Java Server Faces med Primefaces och Tomcat samt Pi4J biblioteket, för att skapa ett grafiskt gränssnitt för att styra lampor, relän, givare osv. Fungerar kanon!
Fungerar bra, men jag har en liten fundering.
Jag har två klasser:
Notera att metoden getNumber() MÅSTE vara inkluderad i klassen A för att jag har en .xhtml fil som läser fältet number och då kräver den getNumber() också. Annars kan hemsidan inte läsa från fältet number i klassen A.
Om ni undrar så ser det ut så här: https://www.primefaces.org/showcase/ui/ajax/counter.xhtml
@Managebean
@SessionScoped
public class A {
private int number;
private B b;
// Konstruktör
public A (B b){
this.b = b;
}
// Hämta nummer
public void getNumber() {
number = b.getNumber();
}
}
Klass B har en lyssnare som lyssnar utav en händelse. För varje gång en händelse sker så uppdateras number i klass B.
public class B {
private int number;
public void numberListen(){
// Kod för nummerlyssnare som ökar number++ vid en händelse
}
// Skicka nummer
public int getNumber(){
return number;
}
}
Problemet är att fältvariabeln number i klass A uppdateras ej automatiskt. Måste jag göra så att number i klass A och klass B delar samma minne, dvs att number ska vara ett statiskt fält. Eller kan jag undvika detta?
Eller en lyssnare för HTML som kan uppdatera ett fält på hemsidan när den känner för det?