Salve ho una classe che estende timertask , ma questa classe dovrebbe anche estendere Observable come posso fare?
Salve ho una classe che estende timertask , ma questa classe dovrebbe anche estendere Observable come posso fare?
Non puoi così, Java ha solo l'ereditarietà singola di classe. Se vuoi persistere su questa strada, però nota che nessuno vieta di avere una inner-class nel tuo task che estende Observable e poi nel tuo task rendere disponibile un getObservable() che permette di tirare fuori l'Observable.![]()
Ultima modifica di andbin; 16-06-2014 a 15:10
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Perché clearChanged/setChanged sono protected in Observable. protected vuol dire che il membro è "visibile" solo a: 1) qualunque classe/sotto-classe nello stesso package (di java.util sarebbe, quindi) e 2) sotto-classi in altri package, cioè solo per ereditarietà.
Pertanto setChanged è usabile direttamente nella tua inner-class che estende Observable ma non è visibile alla classe "contenitore" della tua inner-class.
Nota che non c'è bisogno di ridefinire setChanged! Basta che nella tua inner-class metti un metodo (anche privato, tanto questo è accessibile dalla classe contenitore) es. cambia() che invoca setChanged().
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet