| 
            
                                 轉(zhuǎn)載                
                2016年10月21日 10:23:21
             
                            
                        
 
內(nèi)容導(dǎo)覽 反射方式,成員變量的類型判斷isInstance用法利用泛型識別類型
 
測試類: 
Java代碼    
package com.cxyapi.oo;  
  
import java.util.Date;  
  
import com.cxyapi.generics.TypeToolsGenerics;  
  
/** 類型識別工具測試類 
 * @author cxy @ www.cxyapi.com 
 */  
public class TypeToolsTest2  
{  
    private static int ii=0;  
    private static Date d=new Date();  
      
    public static void main(String[] args) throws Exception  
    {  
        //補(bǔ)充一:獲得成員變量的類型  
        System.out.println(TypeToolsTest2.class.getDeclaredField("ii").getType());   
        System.out.println(TypeToolsTest2.class.getDeclaredField("d").getType());   
        System.out.println("----------------------");  
          
        //補(bǔ)充二:isInstance可判斷出包裝類型,從而得知基本類型  
        System.out.println(Integer.class.isInstance(ii));  
        System.out.println(Date.class.isInstance(d));  
        System.out.println("----------------------");  
          
        //補(bǔ)充三:泛型方式判斷類型  
        System.out.println(TypeToolsGenerics.getType(ii));  
        System.out.println(TypeToolsGenerics.getType(2.2));  
        System.out.println(TypeToolsGenerics.getType(true));  
        System.out.println(TypeToolsGenerics.getType('a'));  
        System.out.println(TypeToolsGenerics.getType(d));  
    }  
}  
 
  
泛型方式類型識別工具: 
Java代碼    
package com.cxyapi.generics;  
  
import java.util.HashMap;  
import java.util.Map;  
  
  
/** 類型識別工具 泛型 
 * @author cxy @ www.cxyapi.com 
 */  
public class TypeToolsGenerics  
{  
    private static final Map<String,String> typeMap=new HashMap<String,String>();  
    static  
    {  
        typeMap.put("java.lang.Byte", "byte");  
        typeMap.put("java.lang.Short", "short");  
        typeMap.put("java.lang.Integer", "int");  
        typeMap.put("java.lang.Long", "long");  
        typeMap.put("java.lang.Double", "double");  
        typeMap.put("java.lang.Float", "float");  
        typeMap.put("java.lang.Character", "char");  
        typeMap.put("java.lang.Boolean", "boolean");  
    }  
    public final static <T> String getType(T t)  
    {  
        if(t==null){return null;}  
        String typeInfo=t.getClass().getName();  
        return typeMap.containsKey(typeInfo)?typeMap.get(typeInfo):typeInfo;   
    }  
}  
 
 http://csjavapx.lofter.com |