Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben
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.

Geschrieben

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 ^^

Geschrieben
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".

Geschrieben
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.

Geschrieben
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.

Geschrieben

@VaNaTiC:

Ich habe deinen Vorschlag mit .getDeclaredmethods ausprobiert und funktioniert genau so, wie ich es haben wollte - und nicht kompliziert :cool:

Danke :)

Geschrieben

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]

Geschrieben
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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...