如果我们想在 javascript 中检查变量的数据类型,我们可以使用 typeof
operator 。
考虑这个片段
var c = 'str' ;
console.log(typeof(c)); // string
c = 123 ;
console.log(typeof(c)); // number
c = {} ;
console.log(typeof(c)) ; // object
我想在 Java 8
中实现相同的功能。 Java 没有 typeof 运算符,但有 instanceof
运算符来检查类型。
System.out.println("str" instanceof String); // true
Integer a = 12 ;
System.out.println(a instanceof Integer);
Float f = 12.3f
System.out.println(f instanceof Float); // true
我们能做得更好吗?另外 instanceof
不支持原始类型。
java 8
中有什么方法吗?任何相关的方法将不胜感激。
原文由 user8838577 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用
getClass()
方法获取您正在使用的对象的类型:这将生成以下输出:
如您所见,它将显示变量引用的对象的类型,这可能与变量的类型不同(在本例中为
Object
)。对于原始类型,没有可用的解决方案,因为不存在知道存储在变量中的类型的问题。基本类型变量 只能 保存该类型的值。因为您必须在某个地方定义变量(或参数),所以您已经知道它的类型和它可以容纳的值。原始值没有“基本”类型,您可以使用类似于
Object
类型,它是 java 中所有对象的基本类型。