㈠ 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)創建類。
動態編譯可以簡化代碼,增強類功能,但也帶來了代碼復雜度,線上不易維護。