2012-03-30 4 views
2

betrachten erklärt zu identifizieren ist eine Variable avar als, wie die Art der Variablen als Schnittstelle

Set avar; 

dann erklärt, initialisiert i als

avar= new HashSet(); 

jetzt, wenn ich diese avar Klasse aus ...

System.out.println("class----->"+avar.getClass()); 
System.out.println("class name--->"+avar.getClass().getName()); 
System.out.println("class--super name--->"+avar.getClass().getSimpleName()); 
System.out.println("is interface--->"+avar.getClass().isInterface()); 

Es Ausgabe lautet:

class----->class java.util.HashSet 
class name--->java.util.HashSet 
class--super name--->HashSet 
is interface--->false 

Ist es möglich, den Variablentyp als Set ....

ich meine die erwartete gegeben wird ........

Antwort

4

Der Typ der Variable ist Set zu erhalten . Der Typ des Objekts, auf den sich der Wert der Variablen bezieht, ist bis HashSet.

Sie können nicht den Typ der Variable, wenn man nur den Wert haben (zum Beispiel, wenn dieser Wert durch eine Methode als Parameter empfangen wird).

Dies geht zurück auf Ihre früheren Fragen - es mir immer noch nicht klar ist, dass Sie wirklich da meine Antworten verstanden haben ...

+0

ya ich unterschritt jon .. aber mein Problem in Aktion wird als Set ist erklärt und Übergeben der Variablen zu delegieren .. So in Delegat hatte ich eine Methode, die Argumente als Set nicht hashset ,, so dass es die Methode nicht finden konnte, da seine Signatur anders ist ... ex .. set avar = new HashSet(); und diese avar delegieren, um getMethod (avar) in Aktion zu delegieren ... und im delegate hatte ich eine Methode public void getMethod (set avar) {} –

+3

@Meeran: Ich verstehe das Problem, das Sie versuchen zu lösen, aber du scheinst nicht zu verstehen, warum du * es nicht schaffen wirst *. Du gibst die * Variable * nicht an den Delegaten weiter - du übergibst den * Wert * der Variablen, an diesem Punkt gibt es * keine * Informationen über den Typ der Variablen, von der * der * Wert kam. Sie müssen neu gestalten. –

Verwandte Themen