Frage von 3v1lH4x0R, 76

Wie bekomme ich die Argumentanzahl einer Methode?

Ich suche eine Möglichkeit, welche ähnlich wie das function.length in JavaScript oder function.func_code.co_argcount in Python funktioniert und mir die Anzahl der Argumente einer beliebigen Methode zurückgibt.

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Star4Fun, 23

Ich denke das du dies nur mit reflection erreichen kannst probiere mal

public int getArgumentsSize (String name){
Method[] m = deineklasse.class.getMethods();
for (int i = 0; i < m.length; i++){
if(m[i].getName().equals(name){
return m[i].getTypeParameters().size();
}
}
System.err.println ("method not found");
}

so was in der Richtung.

Kommentar von 3v1lH4x0R ,

Method#getTypeParameters().size() hab ich gesucht. Danke <3

Kommentar von Star4Fun ,

Kein Ding ^^

Kommentar von Star4Fun ,

Noch besser: m[i].getParameterCount();

Antwort
von Reyha24, 25

Entweder die Objekte in einen Container packen oder die Anzahl der Argumente als Parameter selbst mitliefern. Gruß :)

Kommentar von 3v1lH4x0R ,

Gibts echt kein andern weg :'(

Kommentar von Reyha24 ,

Wozu brauchst du denn die Anzahl der Parameter?

Antwort
von webflexer, 51

In welcher Programmiersprache? PHP?

array func_get_args ( void )
Kommentar von 3v1lH4x0R ,

Oh sorry. Java.... Hab's in die Tags geschrieben und dann vergessen >.<

Kommentar von webflexer ,

Evtl bringt dich das weiter:

 String Name = "AStringExample";
String Style = "TheStyle";
Object[] argv = {7,9};
Object[] argc = {Name,Style};
Object[] NewArray = func_get_args(argv,Name,Style,argc);
for (int i = 0; i < NewArray.length;i++) {
System.out.println("i="+i+" -> "+NewArray[i].toString());
}

Output:

i=0 -> 7
i=1 -> 9
i=2 -> AStringExample
i=3 -> TheStyle
i=4 -> AStringExample
i=5 -> TheStyle
Kommentar von Smexah ,

Sollte dann nicht aber vier rauskommen? Sind doch nur vier Parameter..

Antwort
von 3v1lH4x0R, 42

Geht um Java.

Keine passende Antwort gefunden?

Fragen Sie die Community