js里通過eval()函數,在知道某個方法名是可以實現調用該方法,那么在java里邊又怎么實現的呢?
java里邊是通過反射機制來實現,代碼如下:
import java.lang.reflect.Method; 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!"; } }
