springcloud

java面试知识点(四)- java 动态代理

2019-12-18  本文已影响0人  红色的飞猪

java 反射

反射是一种机制,提供java 程序在RunTime获取类的元属性信息,创建对象,执行方法,修改权限等操作的能力,官方叫类的自省能力。(自己看看自己都有哪些部分、定义)

public class ReflectService {
    public void sayHello(String name) {
        System.out.println("hell0 " + name);
    }

    public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
        //获取对象
        Object reflectService = Class.forName(ReflectService.class.getName()).newInstance();
      // 获取方法
        Method sayHello = reflectService.getClass().getMethod("sayHello", String.class);
      //执行
        sayHello.invoke(reflectService,"reflect");

    }
}
  //1. 根据名字
  Class<?> aClass = Class.forName(ReflectService.class.getName());
   // 2. 直接调用class
 Class<ReflectService> reflectServiceClass = ReflectService.class;
  // 3. 通过对象
  ReflectService reflectService1 = new ReflectService();

反射的使用场景

java 动态代理使用方式

java 动态代理底层实现

上一篇 下一篇

猜你喜欢

热点阅读