java中没有sizeof()运算符来大概判断数据的类型,但可以通过instanceof运算符判断是否是基本类型对应的包装类的实例来判断基础类型,话不多说上代码
下面是一个判断基础类型的类。
1 public class BaseTypeDistinguish { 2 public static String baseTypeDistinguish(Object o) { 3 if (o instanceof Boolean) { 4 return "boolean"; 5 } else if (o instanceof Character) { 6 return "character"; 7 } else if (o instanceof Byte) { 8 return "byte"; 9 } else if (o instanceof Short) { 10 return "short"; 11 } else if (o instanceof Integer) { 12 return "integer"; 13 } else if (o instanceof Long) { 14 return "long"; 15 } else if (o instanceof Float) { 16 return "float"; 17 } else if (o instanceof Double) { 18 return "double"; 19 } 20 return "not base type"; 21 } 22 public static void baseTypeDistinguishPrint(Object o) { 23 System.out.print(o+" "); 24 System.out.println("This type is "+BaseTypeDistinguish.baseTypeDistinguish(o)); 25 } 26 }
System.out.println('你'+'好');
System.out.println("你"+"好");
你觉得这两句的输出结果会是什么呢 ~笑
附上两个参考文档
JAVA基本数据类型及其对应的包装类 这篇文章有关基础类型写的很详细
java判断基本数据类型的方法 这里的代码有点乱
另外,可以实例还可以通过getClass()方法获取类名
public static String baseTypeDistinguishByGetClass(Object o) { return o.getClass().getTypeName(); } public static void baseTypeDistinguishByGetClassPrint(Object o) { System.out.print(o+" "); System.out.println("This type is "+BaseTypeDistinguish.baseTypeDistinguishByGetClass(o)); }
参考 java获取变量的类型
char类型的变量做加减运算会自动转成int型,而字符串的+运算则是拼接了。所以用' '与" "的两个输出是一个是int型一个是String类型的了。