[MontelLUG] Rogna con Java, ereditarietà (multipla?) ed interfacce (per guru)
Samuele
samuele.zanin a tiscali.it
Dom 4 Ago 2019 20:13:33 CEST
Dopo un pomeriggio di porchi, avevo definito un oggetto di tipo
BlockingQueue (che è una interfaccia)
private BlockingQueue<TMessage> MessageQueue
Un oggetto MessageQueue che contiene oggetti TMessage.
Veniva creato così:
MessageQueue = new |LinkedBlockingQueue|();
Fin qui tutto bene, se non che LinkedBlockingQueue non aveva un metodo
che mi serviva (rimanere in attesa finché non veniva aggiunto un oggetto
nella lista); una variante del metodo peek() ma senza che rimuova l'oggetto.
Al che mi sono ereditato la classe LinkedBlockingQueue:
public class TMessageQueue extends LinkedBlockingQueue
{
public void WaitMessage()
{
//Fa cose
}
}
Ma MessageQueue.WaitMessage(); non viene visto in quanto MessageQueue è
di tipo BlockingQueue che non ha quel metodo.
Non posso dichiarare MessageQueue di tipo TMessageQueue perché in questo
modo non mi trova i vari metodi di BlockingQueue.
Mi verrebbe da dire che devo fare una interfaccia che estende
BlockingQueue e poi una classe derivante da LinkedBokcingQueue che la
implementa, ma io con l'ereditarietà multipla e sti salti mortali in
Java non ci ho mai avuto a che fare.
Qualcuno mi sa dare una mano?
Grassie
Maggiori informazioni sulla lista
montellug