㈠ java 如何根据字符串 动态执行方法(无参和有参)
importjava.lang.reflect.Method;
publicclassTest{
publicstaticvoidmain(String[]args){
Stringa="testa";
Stringb="testb";
call(a);
call(b,"hello");
}
privatestaticvoidcall(StringmethodName){
try{
Methodm=Test.class.getDeclaredMethod(methodName);
m.invoke(Test.class);
}catch(Exceptione){
e.printStackTrace();
}
}
privatestaticvoidcall(StringmethodName,Stringparam){
try{
Methodm=Test.class.getDeclaredMethod(methodName,String.class);
m.invoke(Test.class,param);
}catch(Exceptione){
e.printStackTrace();
}
}
publicstaticvoidtesta(){
System.out.println("无参数");
}
publicstaticvoidtestb(Stringc){
System.out.println(c);
}
}
试试这个可以不。
如果解决了您的问题请采纳!
如果未解决请继续追问
㈡ Java代码的静态编译和动态编译中的问题是什么
Java代码正常是静态编译成字节码,由对应平台的JVM加载执行,静态编译无法动态扩展功能。动态编译有两种方式实现:
从源码编译,需要调用Java Compiler,程序需要运行于JDK(而不是JRE)之上。
动态字节码生成技术(如CGLib、ASM)创建类。
动态编译可以简化代码,增强类功能,但也带来了代码复杂度,线上不易维护。