中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Java反射工具類

2018-07-20    來(lái)源:open-open

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用
    import java.lang.reflect.Array;         
    import java.lang.reflect.Constructor;         
    import java.lang.reflect.Field;         
    import java.lang.reflect.InvocationTargetException;  
    import java.lang.reflect.Method;  
      
    public class Reflection {  
        /**      
            * 得到某個(gè)對(duì)象的公共屬性      
            *      
            * @param owner, fieldName      
            * @return 該屬性對(duì)象      
            * @throws Exception      
            *      
            */        
           public Object getProperty(Object owner, String fieldName) throws Exception {         
               Class ownerClass = owner.getClass();         
               
               Field field = ownerClass.getField(fieldName);         
               
               Object property = field.get(owner);         
                
                return property;         
            }         
               
            /**      
            * 得到某類的靜態(tài)公共屬性      
            *      
            * @param className   類名      
            * @param fieldName   屬性名      
            * @return 該屬性對(duì)象      
            * @throws Exception      
            */        
           public Object getStaticProperty(String className, String fieldName)         
                   throws Exception {         
               Class ownerClass = Class.forName(className);         
                
               Field field = ownerClass.getField(fieldName);         
               
               Object property = field.get(ownerClass);         
               
               return property;         
            }         
               
               
            /**      
            * 執(zhí)行某對(duì)象方法      
            *      
            * @param owner      
            *            對(duì)象      
            * @param methodName      
            *            方法名      
            * @param args      
            *            參數(shù)      
            * @return 方法返回值      
            * @throws Exception      
            */        
           public Object invokeMethod(Object owner, String methodName, Object[] args)         
                   throws Exception {         
               
               Class ownerClass = owner.getClass();         
               
               Class[] argsClass = new Class[args.length];         
               
               for (int i = 0, j = args.length; i < j; i++) {         
                   argsClass[i] = args[i].getClass();         
               }         
              
               Method method = ownerClass.getMethod(methodName, argsClass);         
               
               return method.invoke(owner, args);         
           }         
      
      
             /**      
            * 執(zhí)行某類的靜態(tài)方法      
            *      
            * @param className      
            *            類名      
            * @param methodName      
            *            方法名      
            * @param args      
            *            參數(shù)數(shù)組      
            * @return 執(zhí)行方法返回的結(jié)果      
            * @throws Exception      
            */        
           public Object invokeStaticMethod(String className, String methodName,         
                   Object[] args) throws Exception {         
               Class ownerClass = Class.forName(className);         
      
               Class[] argsClass = new Class[args.length];         
      
      
               for (int i = 0, j = args.length; i < j; i++) {         
                   argsClass[i] = args[i].getClass();         
               }         
      
               Method method = ownerClass.getMethod(methodName, argsClass);         
      
               return method.invoke(null, args);         
           }         
      
      
      
            /**      
            * 新建實(shí)例      
            * @param className  類名   
            * @param args    構(gòu)造函數(shù)的參數(shù)    
            * 如果無(wú)構(gòu)造參數(shù),args 填寫為 null   
            * @return 新建的實(shí)例      
            * @throws Exception      
            */        
           public Object newInstance(String className, Object[] args,Class[] argsType) throws NoSuchMethodException, SecurityException, ClassNotFoundException,   
           InstantiationException, IllegalAccessException,   
           IllegalArgumentException, InvocationTargetException   
     {         
               Class newoneClass = Class.forName(className);         
      
               if(args == null){     
                   return newoneClass.newInstance();     
      
              }else{     
    //             Class[] argsClass = new Class[args.length];         
    //  
    //             for (int i = 0, j = args.length; i < j; i++) {         
    //                 argsClass[i] = args[i].getClass();         
    //             }         
    //  
    //             Constructor cons = newoneClass.getConstructor(argsClass);    
                  Constructor cons = newoneClass.getConstructor(argsType);  
      
                   return cons.newInstance(args);        
               }     
      
           }         
      
      
      
            /**      
            * 是不是某個(gè)類的實(shí)例      
            * @param obj 實(shí)例      
            * @param cls 類      
            * @return 如果 obj 是此類的實(shí)例,則返回 true      
            */        
           public boolean isInstance(Object obj, Class cls) {         
               return cls.isInstance(obj);         
           }         
      
            /**      
            * 得到數(shù)組中的某個(gè)元素      
            * @param array 數(shù)組      
            * @param index 索引      
            * @return 返回指定數(shù)組對(duì)象中索引組件的值      
            */        
           public Object getByArray(Object array, int index) {         
               return Array.get(array,index);         
           }    
             
           public Class<?> GetClassListByPackage(String pPackage) {  
               Package _Package = Package.getPackage(pPackage);  
               Class<?> _List =   _Package.getClass();  
                 
               return _List;  
           }  
    }  

標(biāo)簽: ssl

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:創(chuàng)建DOM元素的通用JS函數(shù)

下一篇:用shell掃描局域網(wǎng)所有IP的MAC地址