Huwy Geschrieben 19. Mai 2009 Geschrieben 19. Mai 2009 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 Zitieren
perdian Geschrieben 19. Mai 2009 Geschrieben 19. Mai 2009 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. Zitieren
Huwy Geschrieben 20. Mai 2009 Autor Geschrieben 20. Mai 2009 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 ^^ Zitieren
perdian Geschrieben 20. Mai 2009 Geschrieben 20. Mai 2009 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". Zitieren
Huwy Geschrieben 20. Mai 2009 Autor Geschrieben 20. Mai 2009 Ich hab's mir denken können - ein bißchen Phantasie gehört auch dauz Zitieren
VaNaTiC Geschrieben 20. Mai 2009 Geschrieben 20. Mai 2009 Unterstützt Reflection nicht nur public-Features? Zitieren
perdian Geschrieben 20. Mai 2009 Geschrieben 20. Mai 2009 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. Zitieren
VaNaTiC Geschrieben 21. Mai 2009 Geschrieben 21. Mai 2009 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. Zitieren
Huwy Geschrieben 25. Mai 2009 Autor Geschrieben 25. Mai 2009 @VaNaTiC: Ich habe deinen Vorschlag mit .getDeclaredmethods ausprobiert und funktioniert genau so, wie ich es haben wollte - und nicht kompliziert :cool: Danke Zitieren
Huwy Geschrieben 25. Mai 2009 Autor Geschrieben 25. Mai 2009 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] Zitieren
perdian Geschrieben 25. Mai 2009 Geschrieben 25. Mai 2009 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 Zitieren
Huwy Geschrieben 25. Mai 2009 Autor Geschrieben 25. Mai 2009 Alles klar. Dann werd ich mein satanisches Werk noch etwas verbessern Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.