Nye*_*han 2 java reflection methods
我用java反射编写了以下代码.在这段代码中,我调用method1(),它有一个参数,代码运行没有错误.没关系.但是如何调用没有参数的method2()和method3()?如何在java反射中调用没有参数的方法?Java是否支持此类功能?
import java.lang.reflect.Method;
class MethodCallTest {
public static void main(String[] args) {
MethodCallTest mct = new MethodCallTest();
mct.start();
}
private void start(){
try{
Class<?> c = getClass();
Method m1 = c.getDeclaredMethod("method1", String.class);
m1.invoke(this, "method1");
}catch(Exception e){
e.printStackTrace();
}
}
private void method1(String s){
System.out.println("Hello from " + s);
}
private static void method2(){
System.out.println("Hello from method2");
}
private static void method3(){
System.out.println("Hello from method3");
}
}
Run Code Online (Sandbox Code Playgroud)
如何在java反射中调用没有参数的方法?
如果不期望的话,不要给它一个论据.
Java是否支持此类功能?
是.
Method m2 = c.getDeclaredMethod("method2");
m2.invoke(this);
Run Code Online (Sandbox Code Playgroud)
要么
c.getDeclaredMethod("method2").invoke(this);
Run Code Online (Sandbox Code Playgroud)
BTW技术上this是第一个隐含的论点.如果你没有参数,那么方法就必须static像这样被调用.
static void staticMethod() { }
Run Code Online (Sandbox Code Playgroud)
叫做使用
c.getDeclaredMethod("staticMethod").invoke(null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3019 次 |
| 最近记录: |