package org.entity; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** * 本案例演示如何通过反射将字符串转换为类 * */ public class Test2 { public static void main(String[] args) { String user = "org.entity.User";//字符串是该类的全限定名 try { Class clzz = Class.forName(user); Object classObj=clzz.newInstance();//将class类转换为对象 //--------------------反射类调用User中的sayHello()方法----------------------------- //注意导入正确的Method包名: // import java.lang.reflect.Method; //获取该类的所有方法 Method[] methods = clzz.getMethods(); //遍历方法 for(Method m:methods){ if(m.getName().equals("sayHello")){//找到sayHello这个方法 try { //user类中的invoke方法第一个参数是要调用的类 //第二个是要传入的参数 m.invoke(classObj, "hello world"); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } }