js裏通過eval()函數,在知道某個方法名是可以實現調用該方法,那麼在java裏邊又怎麼實現的呢?
java裏邊是通過反射機制來實現,代碼如下:
public class Test {
public static void main(String[] args) throws Exception {
String className = "com.runqianapp.ngr.alias.example.FunClass";
String methodName = "sayHello";
Class clz = Class.forName(className);
//
Object obj = clz.newInstance();
//獲取方法
Method m = obj.getClass().getDeclaredMethod(methodName, String.class);
//調用方法
String result = (String) m.invoke(obj, "aaaaa");
System.out.println(result);
}
}
class FunClass{
public String sayHello(String s){
System.out.println(s);
return "hello!";
}
}