JavaSE20_总结之Java变量类型识别的方式

来源:互联网 发布:淘宝做什么产品比较好 编辑:程序博客网 时间:2024/05/18 01:06


总结之Java变量类型识别的方式


package com.hoonee.javase.summary;import java.util.Date;import java.util.HashMap;import java.util.Map;/** * Java变量类型识别的方式 1.反射方式,成员变量的类型判断 2.isInstance用法 3.利用泛型识别类型 *  * @author Hoonee * @mail hoonee@163.com */public class ObtainVarTypeDemo {private static int intVar = 0;private static Date dateVar = new Date();public static void main(String[] args) throws Exception {// 使用发射方式获取变量的类型System.out.println(ObtainVarTypeDemo.class.getDeclaredField("intVar").getType());System.out.println(ObtainVarTypeDemo.class.getDeclaredField("dateVar").getType());// 使用isInstance获取变量的类型System.out.println(Integer.class.isInstance(intVar));System.out.println(Date.class.isInstance(dateVar));// 泛型方式判断类型System.out.println(ObtainVarTypeDemoByGenerics.getType(intVar));System.out.println(ObtainVarTypeDemoByGenerics.getType("test"));System.out.println(ObtainVarTypeDemoByGenerics.getType(dateVar));}}class ObtainVarTypeDemoByGenerics {private static final Map<String, String> varTypeMap = new HashMap<String, String>();static {varTypeMap.put("java.lang.Byte", "byte");varTypeMap.put("java.lang.Short", "short");varTypeMap.put("java.lang.Integer", "int");varTypeMap.put("java.lang.Long", "long");varTypeMap.put("java.lang.Float", "float");varTypeMap.put("java.lang.Double", "double");varTypeMap.put("java.lang.Character", "char");varTypeMap.put("java.lang.Boolean", "boolean");}public final static <T> String getType(T t) {if (t == null) {return null;}String typeInfo = t.getClass().getName();return varTypeMap.containsKey(typeInfo) ? varTypeMap.get(typeInfo) : typeInfo;}}



0 0
原创粉丝点击