Hallo Forum,
ich habe folgendes Problem.
Ich habe eine Klasse, in der in einer ArrayList "fnmlisteners" Objekte von verschiedenen anderen Klassen vorliegen, die alle das Interface "NetworkModelListener" implementieren.
Jetzt benötige ich eine Hilfsmethode, die folgendes erfüllt:
Als Parameter übergebe ich der Methode eine Variable vom Typ Object, der allerdings nicht wirklich vom Typ Object ist, sondern irgend einem anderen Typ.
Die Methode soll nun prüfen, ob der so übergebene Parameter einem solchem Objekttyp entspricht, der in der ArrayList auftaucht. Ist dies der Fall, soll die Methode das entsprechende Objekt aus der ArrayList zurückliefern.
Liegt ein solcher Objekttyp, der als Parameter übergeben wurde jedoch nicht als Objekttyp in der ArrayList vor, so soll null zurückgeliefert werden.
Beispiel: Ich übergebe der Methode ein Objekt vom Typ "Testklasse".
Liegt in der ArrayList ein Objekt des Typs "Testklasse" vor, wird genau dieses Objekt aus der ArrayList zurückgeliefert, ansonsten wird null zurückgeliefert.
Wichtig ist aber, dass ich der Hilfsmethode nicht nur Objekte vom Typ "Testklasse" übergeben kann, sondern im Prinzip alle möglichen Ojekte.
Ich habe versucht, es mit instanceof zu lösen, jedoch ohne Erfolg:
Das Problem liegt im instanceof-Vergleich.
Jetzt hab ich mal versucht, das Ganze mit Generics zu lösen, aber leider auch ohne Erfolg:
Auch hier liefert instanceof einen Fehler, weil er mit dem Typparameter T nicht zurecht kommt.
Gibt es für mein Problem einen anderen Lösungsweg?
ich habe folgendes Problem.
Ich habe eine Klasse, in der in einer ArrayList "fnmlisteners" Objekte von verschiedenen anderen Klassen vorliegen, die alle das Interface "NetworkModelListener" implementieren.
Jetzt benötige ich eine Hilfsmethode, die folgendes erfüllt:
Als Parameter übergebe ich der Methode eine Variable vom Typ Object, der allerdings nicht wirklich vom Typ Object ist, sondern irgend einem anderen Typ.
Die Methode soll nun prüfen, ob der so übergebene Parameter einem solchem Objekttyp entspricht, der in der ArrayList auftaucht. Ist dies der Fall, soll die Methode das entsprechende Objekt aus der ArrayList zurückliefern.
Liegt ein solcher Objekttyp, der als Parameter übergeben wurde jedoch nicht als Objekttyp in der ArrayList vor, so soll null zurückgeliefert werden.
Beispiel: Ich übergebe der Methode ein Objekt vom Typ "Testklasse".
Liegt in der ArrayList ein Objekt des Typs "Testklasse" vor, wird genau dieses Objekt aus der ArrayList zurückgeliefert, ansonsten wird null zurückgeliefert.
Wichtig ist aber, dass ich der Hilfsmethode nicht nur Objekte vom Typ "Testklasse" übergeben kann, sondern im Prinzip alle möglichen Ojekte.
Ich habe versucht, es mit instanceof zu lösen, jedoch ohne Erfolg:
Code:
public Object getDeclaredViewClass(Object viewclass)
{
for(FlowNetworkModelListener li : fnmlisteners)
{
if(li instanceof Object)
{
return li;
}
}
return null;
}
Jetzt hab ich mal versucht, das Ganze mit Generics zu lösen, aber leider auch ohne Erfolg:
Code:
public <T> getDeclaredViewClass(T viewclass)
{
for(FlowNetworkModelListener li : fnmlisteners)
{
if(li instanceof T)
{
T t = (T)li;
return t;
}
}
return null;
}
Gibt es für mein Problem einen anderen Lösungsweg?