Ich möchte den Namen einer bestimmten Methode mit dem Parameter aus einer Klasse zurückgeben.Wie gebe ich den Namen einer bestimmten Methode mit dem Parameter aus einer Klasse zurück
Ich habe ein Programm, das auch den Methodennamen zurückgibt, aber den Klassennamen und den Paketnamen enthält. Der Code ist:
import java.lang.reflect.*;
public class ClassDemo {
public static void main(String[] args) {
ClassDemo cls = new ClassDemo();
Class c = cls.getClass();
try {
// parameter type is null
Method m = c.getMethod("show", null);
System.out.println("method = " + m.toString());
}
catch(NoSuchMethodException e) {
System.out.println(e.toString());
}
try {
// method Long
Class[] cArg = new Class[1];
cArg[0] = Long.class;
Method lMethod = c.getMethod("showLong", cArg);
System.out.println("method = " + lMethod.toString());
}
catch(NoSuchMethodException e) {
System.out.println(e.toString());
}
}
public Integer show() {
return 1;
}
public void showLong(Long l) {
this.l = l;
}
long l = 78655;
}
Und das Ergebnis ist:
method = public java.lang.Integer ClassDemo.show()
method = public void ClassDemo.showLong(java.lang.Long)
Meine Frage ist es eine Möglichkeit, wo ich den Namen die Methode mit dem zugehörigen Parameter bekommen konnte, aber ohne die Klassennamen und Paketnamen?
meine ich in diesem Fall das Ergebnis sein wird:
method = show()
method = showLong(Long)
Ich sah die Frage Getting the name of the current executing method aber es ist nicht, was ich will. Kann mir jemand eine Lösung geben?
Sie könnten 'lMethod.getName()' und 'lMethod.getParameterTypes()' aufrufen und von dort gehen? – immibis
Verwenden Sie keine Codeformatierung für Text, der kein Code ist. – EJP