首页 > 编程语言 > 详细

Java反射使用技巧

时间:2016-03-16 17:10:37      阅读:229      评论:0      收藏:0      [点我收藏+]

1. 通过setAccessible关闭安全检查,关闭的目的不是因为访问的field/method是私有的,而且因为关闭后访问公有方法也不会再有安全检查.

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反射使用技巧

原文:http://www.cnblogs.com/princessd8251/p/5283854.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!