java中由类名和方法名字符串实现其调用

js里通过eval()函数,在知道某个方法名是可以实现调用该方法,那么在java里边又怎么实现的呢?

java里边是通过反射机制来实现,代码如下:


import  java.lang.reflect.Method;

publicclassTest{

publicstaticvoidmain(String[] args) throws  Exception {

StringclassName ="com.runqianapp.ngr.alias.example.FunClass";

StringmethodName ="sayHello";

  Class clz = Class.forName(className);

// 

Objectobj = clz.newInstance();

//获取方法 

Method m = obj.getClass().getDeclaredMethod(methodName,String.class);

//调用方法 

Stringresult = (String) m.invoke(obj,"aaaaa");

  System.out.println(result);

}

}

classFunClass{

publicStringsayHello(Strings){

  System.out.println(s);

return"hello!";

}


原作者地址:https://blog.csdn.net/u010295735/article/details/74978216

你可能感兴趣的:(java中由类名和方法名字符串实现其调用)