Java反射

反射的使用方法
 

userSeriver接口

public interface UserService {

    void add();

    int delete(String id);

    int update(String id, String name, String age);

    int insert(String id, String name, String age);
}
UserServiceImpl 实现类

public class UserServiceImpl implements UserService {

    @Override
    public void add() {
        System.out.println("add个啥,你啥也没传");
    }

    @Override
    public int delete(String id) {
        System.out.println("id:"+id+"被删除了");
        return 0;
    }

    @Override
    public int update(String id, String name, String age) {
        System.out.println("id:"+id+"修改成功[name:"+name+"age:"+age+"]");
        return 1;
    }

    @Override
    public int insert(String id, String name, String age) {
        System.out.println("插入成功[id:"+id+"name:"+name+"age:"+age+"]");
        return 2;
    }

}
MainTest测试类

public class MainTest {

    public static void main(String[] args) {
        try {
            Class<?> clazz1 = Class.forName("com.test.UserServiceImpl");
            
            Method method1 = clazz1.getMethod("update", String.class, String.class, String.class);
            Object invoke1 = method1.invoke(clazz1.newInstance(), "id100","王大拿","51");
            System.out.println(invoke1);
            
            Class<?> clazz2 = UserServiceImpl.class;
            for (Method method : clazz2.getMethods()) {
                if (method.getName().equals("insert")) {
                    Method thisMethod = clazz2.getMethod(method.getName(), method.getParameterTypes());
                    Object obj = thisMethod.invoke(clazz2.newInstance(), "1", "张大炮", "28");
                    System.out.println(obj);
                }
            }
            
            UserService user = new UserServiceImpl();
            Class<?> clazz3 = user.getClass();
            Method method3 = clazz3.getMethod("add");
            Object invoke3 = method3.invoke(clazz3.newInstance());
            System.out.println(invoke3);
            
        } catch (Exception e) {
            e.printStackTrace(http://www.my516.com);
        }
    }
}
 
---------------------

原文地址:https://www.cnblogs.com/hyhy904/p/11331547.html