Implementierte Interfaces ermitteln

Status
Nicht offen für weitere Antworten.

fragro

Mitglied
Hallo!

Ich hab folgendes Problem... ich habe eine abstrakte Basisklasse sagen wir AbstractBase, welche ein Remote Interface nennen wir es BaseRemote implementiert.

Code:
public abstract class AbstractBase extends UnicastRemoteObject implements BaseRemote {
...
}

von dieser Basisklasse erben weitere spezialisierte abstrakte Klassen welche Basisfunktionalitäten enthalten und ihrerseits ggf. ein erweitertes Remote...

Code:
public interface SpecializedRemote extends BaseRemote {
...
}

public abstract class AbstractSpecialized extends AbstractBase implements SpecializedRemote {
...
}

... im Konstruktor der abstrakten Basisklasse will ich mir alle implementierten Interfaces geben lassen die in den abgleiteten Klassen implementiert wurden...

Code:
public abstract class AbstractBase extends UnicastRemoteObject implements BaseRemote {
   public AbstractBase() throws RemoteException
   {
      super();
      Class<?>[] interfaces = this.getClass().getInterfaces();
   }
}

public abstract class AbstractSpecialized extends AbstractBase implements SpecializedRemote {
   public AbstractSpecialized throws RemoteException
   {
      super();
   }
}

Leider ist die länge des arrays = 0... weiß jemand von euch warum? Ich hätte mind. 3 Interfaces erwartert![/code]
 
S

SlaterB

Gast
wozu an Subklassen denken, sollte ja schon mit BaseRemote klappen,
funktioniert folgendes bei dir?

Code:
class Test
    extends UnicastRemoteObject
    implements BaseRemote
{

    public Test()
        throws RemoteException
    {
        String info = "ich bin: " + this.getClass().getName();
        info += ", interfaces: " + Arrays.toString(this.getClass().getInterfaces());
        System.out.println(info);
    }

    public static void main(String args[])
        throws Exception
    {
        new Test();
    }
}

interface BaseRemote
{
}

wann genau bekommst du diese 0, bist du sicher, dass es keine andere Ausgabe ist?

welcher Klassenname kommt bei der 0 heraus?
bei Remote denke ich immer gleich an dynamisch generierte Proxyklassen,

aber wenn dieser Konstruktor dort ausgeführt wird,
wird es schwer, keine Subklasse zu sein und damit nicht wenigstens BaseRemote zu implementieren ;)

wird etwa der Code herauskopiert? ;)
 

fragro

Mitglied
Code:
Class<?>[] interfaces = this.getClass().getInterfaces(); 
System.out.println(interfaces.length);

Ausgabe:0
 
S

SlaterB

Gast
beeindruckend, wie du alle meine weiterführenden Tipps und Fragen ignorierst (ok, müssen auch nicht genial sein)
und die bereits gegebene Info kommentarlos wiederholst ;)
 

fragro

Mitglied
Sorry war mir wohl zu selbstverständlich das bei this.getClass() die klasse der Instanz (z.B. namespace.xyz.SpecialicedRemote) bzw. this.getClass().getName() der entsprechende Name als String geliefert wird (was auch geschieht)... nur bei getInterfaces() und auch bei getClasses() kommt halt ein Klassenarray der länge 0 raus. Ich hab schon sichergestellt das es sich nicht um nen Anfängerfehler handelt. ;)

Das ganze ist bei mir auch so implementiert nur der Name der Klassen ist anders. Kanns an der VM liegen oder was... ich meine es ist doch eine sehr elementare Klasse die eigentlich funktionieren sollte.

ich poste mal die originalimplementierung steht ja kein Geheimnis drin...
Code:
super();
		// Search for all implemented Interfaces extending NexusDevice
		Vector<Class<?>> interfaces = new Vector<Class<?>>();
		Class<?>[] checkClass = this.getClass().getInterfaces();
		System.out.println(this.getClass().getName() + ":" + checkClass.length); //Ausgabe: de.pegasos.nexus.AbstractNexusDevice$1:0
		for(int i = 0; i < checkClass.length; i++)
		{
			System.out.println(checkClass[i]);
			if(ClassUtil.implementsInterface(checkClass[i], NexusDevice.class))
			{
				interfaces.add(checkClass[i]);
			}
		}
 
S

SlaterB

Gast
nochmal: hast du meinen Code ausgeführt, klappt es im einfachen Beispiel?

dann dürfte doch 'Kanns an der VM liegen oder was... ' wegfallen?

wiederum zu deinem Code, wie immer er ausfgeführt wird:
kommt 'ich bin' usw? was kommt dort für ein Klassenname?
 

Murray

Top Contributor
Im Kommentar steht, dass this.getClass().getName()den String "de.pegasos.nexus.AbstractNexusDevice$1" leifert; offenbar handelt es sich bei this also um eine innerhalb von de.pegasos.nexus.AbstractNexusDevice deklarierte "anonymous inner class" und nicht um de.pegasos.nexus.AbstractNexusDevice selbst. Ist das so gewollt?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Lesen von Interfaces (Programm Vervollständigen) Allgemeine Java-Themen 10
S Interfaces Allgemeine Java-Themen 10
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
S Kann man Variablen oder Felder definieren deren Typ zwei Interfaces ist..? Allgemeine Java-Themen 9
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
S Kann ich eine Methode schreiben die alle Arten von funktionalen Interfaces akzeptiert..? Allgemeine Java-Themen 21
Stonie Prüfen von direkter Implementierung eines Interfaces Allgemeine Java-Themen 7
rentasad Design-Frage - Interfaces, Klassen, statische Methoden Allgemeine Java-Themen 3
J Generische Interfaces mehrfach einbinden Allgemeine Java-Themen 11
P Interfaces Allgemeine Java-Themen 1
K Wohin mit Interfaces? Allgemeine Java-Themen 2
J Interface Wofür Interfaces in Java verwenden? Allgemeine Java-Themen 3
F Namen des Interfaces ausgeben Allgemeine Java-Themen 1
P ClassCastException bei Verwendung eines Interfaces Allgemeine Java-Themen 7
F Sinn des Serializable Interfaces Allgemeine Java-Themen 8
G Interface Laden der Konfiguration über Interfaces sinnvoll? Allgemeine Java-Themen 28
X Generic muss zwei Klassen/Interfaces erfüllen Allgemeine Java-Themen 5
K Objekt einer konkreten Implementierung eines Interfaces durch übergebenen String Allgemeine Java-Themen 2
D Java Interfaces Allgemeine Java-Themen 3
sylo toString() Methode eines Interfaces überladen. Allgemeine Java-Themen 17
S statische Interfaces..? Allgemeine Java-Themen 6
M Frage zu Interfaces (Beispiel: Comparable) Allgemeine Java-Themen 13
I Interfaces und abstrakte Methoden Allgemeine Java-Themen 5
C Verständnis zur Strukturierung von Java-Projekten/Interfaces Allgemeine Java-Themen 2
M Methodenaufrufe sind über Interfaces langsamer. Allgemeine Java-Themen 43
J Verständnisfrage zu Casts auf Interfaces Allgemeine Java-Themen 5
J Statische Methoden in Interfaces? Allgemeine Java-Themen 10
J Immutable mit Interfaces möglich? Allgemeine Java-Themen 2
G verzweiflung pur mit java interfaces Allgemeine Java-Themen 5
M Bereits imlplementierte Interfaces nochmal bei "impleme Allgemeine Java-Themen 10
T Nochmal Frage zu Vererbung Interfaces etc. Allgemeine Java-Themen 10
T JDBC: Unterschiede in Interfaces zwischen 2 Java-Versionen. Allgemeine Java-Themen 6
E Attribute in Interfaces möglich? Allgemeine Java-Themen 17
I Denkfehler bei Interfaces und Casts? Allgemeine Java-Themen 12
M 2 Java-Interfaces öffnen in Unix Allgemeine Java-Themen 4
B "Instantiieren" eines Objekts eines Interfaces Allgemeine Java-Themen 10
F Problem: mehrere Interfaces definieren equals() neu Allgemeine Java-Themen 24
F Probleme mit Interfaces Allgemeine Java-Themen 3
L Verschiedene Versionen eines Interfaces Allgemeine Java-Themen 12
S Methoden aus Interfaces mit unterschiedlichen Parametertypen Allgemeine Java-Themen 7
deetee Wie nennt man Interfaces wie Serializable? Allgemeine Java-Themen 8
B Elegantere Lösung bei der Implementierung eines Interfaces Allgemeine Java-Themen 2
N 2 Interfaces mit Methoden selber Signatur implementieren Allgemeine Java-Themen 5
D Implementierungen eines Interfaces finden Allgemeine Java-Themen 9
I Druckerauflösung per JNA ermitteln Allgemeine Java-Themen 3
Kiki01 Häufigster Buchstabe lässt sich nicht ermitteln Allgemeine Java-Themen 30
S Verwendet Programmiersprache aus Quellcode - Datei ermitteln Allgemeine Java-Themen 6
B Dateistart ermitteln Allgemeine Java-Themen 14
MiMa Geldbetrag mit regex ermitteln. Allgemeine Java-Themen 14
S Alle Dateinamen ermitteln Allgemeine Java-Themen 22
S Marker aus String ermitteln Allgemeine Java-Themen 5
B Mail: Nicht vorhandener Empfänger ermitteln Allgemeine Java-Themen 4
D javassist API Klasse in MethodCall ermitteln Allgemeine Java-Themen 8
J Größe einer CD ermitteln Allgemeine Java-Themen 10
C Ermitteln ob Zeitumstellung war Allgemeine Java-Themen 37
KeexZDeveoper Nächstgelegenden Wert ermitteln Allgemeine Java-Themen 5
D Best Practice Die niedrigste Differenz zwischen zwei Listen ermitteln. Allgemeine Java-Themen 10
L Wachstumsordnung der Ausführungszeit ermitteln Allgemeine Java-Themen 7
MiMa MP3 Bitrate ermitteln Allgemeine Java-Themen 7
Aruetiise Interface Position durch JButton ermitteln Allgemeine Java-Themen 5
L Ermitteln der Anzahl an Lösungen von quatratischen Gleichungen (Sieb von Atkin) Allgemeine Java-Themen 1
L Java Version aus Tomcat ermitteln Allgemeine Java-Themen 3
F Content-Disposition ermitteln über URL Allgemeine Java-Themen 2
O MVC - wo Liste der ComboBox-Items ermitteln Allgemeine Java-Themen 3
F Zeit ermitteln Allgemeine Java-Themen 2
J ermitteln der Anzahl der Monate Allgemeine Java-Themen 7
F Swing selektierte Komponente ermitteln Allgemeine Java-Themen 4
S Einfache Methode die Groesse eines Objekts zu ermitteln? Allgemeine Java-Themen 12
E Ermitteln einer eindeutigen ID eines Objekts möglich? Allgemeine Java-Themen 17
L Jsp: Vorherige Webseite ermitteln Allgemeine Java-Themen 4
K Annotations der aufrufenden Methode ermitteln Allgemeine Java-Themen 11
S per Mausklick Position ermitteln Allgemeine Java-Themen 8
T HTML Tag Position mittels Pattern ermitteln Allgemeine Java-Themen 7
K Datum ermitteln Allgemeine Java-Themen 4
R Array Schnittmenge performant ermitteln Allgemeine Java-Themen 8
M Klassen in vielen Jars ermitteln Allgemeine Java-Themen 2
c_sidi90 Routine zum ermitteln des Standardablageverzeichnisses Allgemeine Java-Themen 2
R Windows ermitteln ob Administratorrechte vorhanden Allgemeine Java-Themen 17
E Java Browser ermitteln? Allgemeine Java-Themen 6
F Pfad der laufenden JAR ermitteln (mit Archivnamen) Allgemeine Java-Themen 2
E Java Version Details ermitteln Allgemeine Java-Themen 5
E Performace/Ausführungszeit von Methoden ermitteln Allgemeine Java-Themen 4
J Anwendungen ermitteln ? Allgemeine Java-Themen 5
Iron Monkey Lautstärkeregelung ermitteln Allgemeine Java-Themen 2
A Reisezeiten ermitteln Allgemeine Java-Themen 9
Z Position/Größe von Windows-Fenstern ermitteln Allgemeine Java-Themen 12
S Konstruktor ermitteln Allgemeine Java-Themen 3
Iron Monkey Anzahl der Monate ermitteln Allgemeine Java-Themen 17
multiholle Aufrufer einer Funktion ermitteln Allgemeine Java-Themen 13
FoolMoon Elegante Möglichkeit die kleinste Zahl zu ermitteln. Allgemeine Java-Themen 7
T Pfad Anwendungsdaten unter Windows ermitteln Allgemeine Java-Themen 3
D Häufigkeit eines Zeichens ermitteln Allgemeine Java-Themen 5
H2SO3- Pixel länge von String ermitteln Allgemeine Java-Themen 4
D Parametername ermitteln Allgemeine Java-Themen 10
T Nicht verwendete Klassen in Projekten ermitteln? Allgemeine Java-Themen 2
data89 [Kurze Frage] Ähnlichkeit zweier Strings ermitteln Allgemeine Java-Themen 19
T zu Beginn der main: Heap space ermitteln und hochsetzen Allgemeine Java-Themen 11
M Grösse von BorderLayout.CENTER ermitteln Allgemeine Java-Themen 8
G Ermitteln des aufrufenden Objekts Allgemeine Java-Themen 5
G Zeigeranzahl ermitteln Allgemeine Java-Themen 10

Ähnliche Java Themen

Neue Themen


Oben