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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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