Java反射使用技巧
2016-03-16 15:46
477 查看
1. 通过setAccessible关闭安全检查,关闭的目的不是因为访问的field/method是私有的,而且因为关闭后访问公有方法也不会再有安全检查.
2.把已经查找好的method/field 缓存起来,毕竟类的结构一般是不会变化的.
SomeObject someObject = new SomeObject(); Class<? extends SomeObject> cls = SomeObject.class; Method method = cls.getDeclaredMethod("someGetMethod"); method.setAccessible(Boolean.TRUE); String xxx = (String) method.invoke(someObject);
2.把已经查找好的method/field 缓存起来,毕竟类的结构一般是不会变化的.
public Method getMethod(String name, @SuppressWarnings("rawtypes") Class... parameterTypes) throws SecurityException, NoSuchMethodException { Method method = classMethodMap.get(name);//classMethodMap used to store method if (method == null) { method = someClass.getDeclaredMethod(name, parameterTypes);//someClass is the reflect object class method.setAccessible(Boolean.TRUE); concentrationClassMethodMap.put(name, method); } return method; }
相关文章推荐
- JAVA CAS原理深度分析
- Java解析xml的主要解析器: SAX和DOM的选择
- eclipse打jar包
- 2016蓝桥杯假期任务之《比酒量》
- Eclipse,hadoop2.7.2 hadoop-eclipse-plugin.jar的制作
- java类ByteArrayOutputStream的toString()方法使用
- Java中实际上有四种强度不同的引用
- Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
- 注定了Java客户端不利于推向市场
- Java并发编程:Timer和TimerTask(转载)
- 关于一些基础的Java问题的解答(二)
- Java并发编程:Callable、Future和FutureTask
- java annotation与AOP点滴积累
- Java数据类型(一)
- Java中的List接口
- Java并发编程:并发容器之ConcurrentHashMap
- java并发编程:并发容器之CopyOnWriteArrayList(转载)
- 2016蓝桥杯假期任务之《黄金队列》
- Java并发编程:深入剖析ThreadLocal
- Java关键字final、static使用总结