如何使用反射
来源:互联网 发布:淘宝购物车有什么用 编辑:程序博客网 时间:2024/06/16 23:30
反射用途:
反射被广泛地用于那些需要在运行时检测或修改程序行为的程序中。这是一个相对高级的特性,只有那些语言基础非常扎实的开发者才应该使用它。如果能把这句警示时刻放在心里,那么反射机制就会成为一项强大的技术,可以让应用程序做一些几乎不可能做到的事情。
缺点:
尽管反射非常强大,但也不能滥用。如果一个功能可以不用反射完成,那么最好就不用。在我们使用反射技术时,下面几条内容应该牢记于心:
1. 性能第一
反射包括了一些动态类型,所以JVM无法对这些代码进行优化。因此,反射操作的效率要比那些非反射操作低得多。我们应该避免在经常被 执行的代码或对性能要求很高的程序中使用反射。
2. 安全限制
使用反射技术要求程序必须在一个没有安全限制的环境中运行。如果一个程序必须在有安全限制的环境中运行,如Applet,那么这就是个问题了。
3. 内部暴露
由于反射允许代码执行一些在正常情况下不被允许的操作(比如访问私有的属性和方法),所以使用反射可能会导致意料之外的副作用--代码有功能上的错误,降低可移植性。反射代码破坏了抽象性,因此当平台发生改变的时候,代码的行为就有可能也随着变化。
具体使用方法如下:
//返回与带有给定字符串名的类或接口相关联的 Class 对象。通过完整的包名+类名获取字节码文件Class<?> cls = Class.forName(String packageName);//根据方法名和存数类型获得字节码中声明过得方法Method method = cls.getDeclaredMethod(String methodName,Class<?> parameterTypes);//暴力反射,设置可访问性method.setAccessible(true);//执行带有指定参数的对象方法method.invoke(Object obj,Object args);
0 0
- 如何使用反射
- 如何使用反射
- 如何使用反射API
- [Android]反射的使用及如何防止反射
- 如何使用自定义特性和反射?
- 如何正确使用Java中的反射机制
- 如何使用反射取得对象的属性值
- All About JAVA 如何使用反射(Reflection )
- java 注解annotation的使用,以及反射如何获取注解
- 如何在业务设计中优雅地使用JAVA反射
- java 注解annotation的使用,以及反射如何获取注解
- 如何使用反射技术获取泛型类的真实类型?
- 如何使用反射技术获取泛型类的真实类型?
- 如何使用Java的反射机制以及调用构造方法?
- C#如何使用反射实现通过字符串创建类
- 如何使用反射技术获取泛型类的真实类型
- java如何使用反射调用类中的方法
- 如何使用java反射机制测试私有方法
- HorizontalScrollView作为导航栏和HorizontalScrollView的滑动
- Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart
- leetcode题解-204. Count Primes
- iOS UITableView(四)-Cell拖动更改排序
- 几种遍历map的方法
- 如何使用反射
- Android自定义View之画笔与画布(2)
- kafka自学之路--zookeeper中存储结构
- linux中dig命令返回结果解释
- MFC GDI+基础
- spring-data-redis 使用
- 动态sql
- Servlet学习(一)部署servlet
- matlab转置与共轭转置