Veröffentlicht 19. Mai 200916 j Hallo zusammen, kurz und knapp. Gibt es eine Möglichkeit, sich einen Rückgabe-Wert für den Typ einer Methode geben zu lassen (zum Beispiel 1 für public, 2 für private oä)? In einem kleinen Projekt benötige ich nämlich nur die Anzahl von private-Methoden. Der Zählvorgang an sich steht schon. Auf die schnelle habe ich nichts gefunden. Ich muss vielleicht erwähnen, dass ich erst ein viertel Jahr mit JAVA zu tun habe und deswegen noch dabei bin, mein Wissen aufzubauen :-) Danke! Viele Grüße Thomas
19. Mai 200916 j Gibt es eine Möglichkeit, sich einen Rückgabe-Wert für den Typ einer Methode geben zu lassen (zum Beispiel 1 für public, 2 für private oä)?Ja, gibt es. Dein Stichwort heisst Reflection. Wenn du allerdings gerade erst mit Java angefangen hast dürfte das alles andere als einfacher Stoff sein - das ganze ist recht komplex, dafür aber auch recht komplex.
20. Mai 200916 j Autor Dankeschön :-) Naja irgendwann ist immer das erste Mal. Ich werde mich damit mal etwas beschäftigten und wenn ich weitergekommen bin, melde ich mich nochmal ^^
20. Mai 200916 j das ganze ist recht komplex, dafür aber auch recht komplex.Was habe ich da eigentlich für einen Mist geschrieben? ;-) Ich meine natürlich "recht leistungsfähig, dafür aber auch recht komplex".
20. Mai 200916 j Unterstützt Reflection nicht nur public-Features?Wieso guckst du nicht einfach kurz vor einem solchen Posting in die API? Nein, es werden nicht nur public Methoden unterstützt.
21. Mai 200916 j Wieso guckst du nicht einfach kurz vor einem solchen Posting in die API? Nein, es werden nicht nur public Methoden unterstützt. Danke für diesen netten Hinweis. Aber Du hast Recht, ich habe mich nicht direkt informiert. Ich hab nur meine Erfahrung beim Implementieren eines eigenen XML-Serializers gesprochen. Im besondern Fall der privaten Methoden geht das und ist weder komplex noch schwierig. Einfach einen Aufruf auf Method[] getDeclaredmethods() und das Array durchlaufen und mittels Modifier.isPrivate(Method.getModifiers()) testen. Mein Fehler war protected overriden und private Methoden zu verwechseln.
25. Mai 200916 j Autor @VaNaTiC: Ich habe deinen Vorschlag mit .getDeclaredmethods ausprobiert und funktioniert genau so, wie ich es haben wollte - und nicht kompliziert :cool: Danke
25. Mai 200916 j Autor Das ist der kleine Abschnitt, welcher alle meine Probleme gelöst hat. Hab ich leider nur ganz vergessen zu posten [...] Method[] methods = classe[i].getDeclaredMethods(); if(methods[i].getModifiers()==1) { methodnumber++; } numberofmethodsvalue.setCellValue(methodnumber); [...] [/PHP]
25. Mai 200916 j if(methods.getModifiers()==1)Magic number --> böse! Viel besser: if(Modifier.isPrivate(methods.getModifiers())) Mein Fehler war protected overriden und private Methoden zu verwechseln.Auch overriden protected lässt sich über Reflection herausfinden
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.