import java.lang.reflect.Method; public class DynamicLoading { public static void main(String[] args) throws Exception { String s = "A"; //加载类文件 Class c = Class.forName(s); //创建对象 Object obj = c.newInstance(); //获得方法数组 Method[] methods = c.getMethods(); for(Method m:methods){ if(m.getName().equals("mm")){ Class[] sarrary = new Class[]{int.class,String.class}; //获得方法 Method m2 = c.getDeclaredMethod("mm",sarrary); //调用方法 m2.invoke(obj,1,"lkjlkj"); m.invoke(obj,1,"lkjlkj"); //获得参数类型 for(Class paraType:m.getParameterTypes()){ System.out.println(paraType.getName()+"----------para"); } //获得返回值类型 Class returnType = m.getReturnType(); System.out.println(returnType.getName()+"------------returnType"); } } Method TT = c.getDeclaredMethod("TT"); TT.invoke(obj); } } class A { public void mm(int i,String s){ System.out.println("------mm invoked-----"+i+"===="+"======"+s); } public void TT(){ System.out.println("-----TT invoked"); } }
简单反射调用方法
猜你喜欢
转载自javafu.iteye.com/blog/1956162
今日推荐
周排行