反射机制的使用

某些情况下,编程人员会有这样的需求 给出一个str="CLASS类名"   new str 对这个字符串名称的类进行实例化该类的一个对象。(参考JAVA反射机制)

转载于:https://my.oschina.net/houranlee/blog/717721

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java反射机制是指在运行时动态地获取类的信息并操作类的属性、方法和构造方法,而无需在编译时确定这些信息。Java反射机制通过以下步骤来实现: 1. 获取Class对象:使用Class类中的静态方法获取类的Class对象,例如: ``` Class<?> clazz = Class.forName("com.example.MyClass"); ``` 2. 获取类的构造方法:使用Class类中的getConstructor()或getDeclaredConstructor()方法获取类的构造方法,例如: ``` Constructor<?> constructor = clazz.getConstructor(String.class, int.class); ``` 3. 创建类的实例:使用构造方法创建类的实例,例如: ``` Object obj = constructor.newInstance("example", 123); ``` 4. 获取类的属性:使用Class类中的getField()或getDeclaredField()方法获取类的属性,例如: ``` Field field = clazz.getField("name"); ``` 5. 修改类的属性:使用Field类中的set()方法修改类的属性,例如: ``` field.set(obj, "newName"); ``` 6. 获取类的方法:使用Class类中的getMethod()或getDeclaredMethod()方法获取类的方法,例如: ``` Method method = clazz.getMethod("doSomething", String.class); ``` 7. 调用类的方法:使用Method类中的invoke()方法调用类的方法,例如: ``` method.invoke(obj, "someArg"); ``` Java反射机制的应用场景包括框架开发、动态代理、注解处理器等。需要注意的是,反射机制虽然灵活,但由于是在运行时进行的,因此效率较低,而且容易出现类型不匹配、访问权限等问题,应谨慎使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值