Aas*_*war 3 java primitive object-type java-8
如果我们想在 javascript 中检查变量的数据类型,我们可以使用typeofoperator 。
var c = 'str' ;
console.log(typeof(c)); // string
c = 123 ;
console.log(typeof(c)); // number
c = {} ;
console.log(typeof(c)) ; // object
Run Code Online (Sandbox Code Playgroud)
我想在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
Run Code Online (Sandbox Code Playgroud)
我们能做得更好吗?Plusinstanceof不支持原始类型。
有什么办法java 8吗?任何相关的方法将不胜感激。
Pro*_*man 10
您可以使用该getClass()方法来获取您正在使用的对象的类型:
Object obj = null;
obj = new ArrayList<String>();
System.out.println(obj.getClass());
obj = "dummy";
System.out.println(obj.getClass());
obj = 4;
System.out.println(obj.getClass());
Run Code Online (Sandbox Code Playgroud)
这将生成以下输出:
Object obj = null;
obj = new ArrayList<String>();
System.out.println(obj.getClass());
obj = "dummy";
System.out.println(obj.getClass());
obj = 4;
System.out.println(obj.getClass());
Run Code Online (Sandbox Code Playgroud)
如您所见,它将显示变量引用的对象的类型,这可能与变量的类型不同(Object在本例中)。
对于原始类型,没有可用的解决方案,因为不存在了解存储在变量中的类型的问题。一个基本类型变量可以保存仅该类型的值。由于您必须在某个地方定义变量(或参数),因此您已经知道它的类型以及它可以保存的值。原始值没有“基本”类型,您可以使用类似于Objectjava 中所有对象的基本类型的类型。
小智 9
感谢@Progman 的getClass()方法。
class check{
static Class typeof(Integer a)
{
return a.getClass();
}
static Class typeof(Character c)
{
return c.getClass();
}
static Class typeof(Float f)
{
return f.getClass();
}
static Class typeof(Double d)
{
return d.getClass();
}
static Class typeof(Long l)
{
return l.getClass();
}
static Class typeof(String s)
{
return s.getClass();
}
}
Run Code Online (Sandbox Code Playgroud)
所以现在我们检查原始类型和非原始类型
check.typeof(12) ; // class java.lang.Integer
check.typeof(12.23f) ; // class java.lang.Float
check.typeof('c') ; // class java.lang.Character
check.typeof("str") ; // class java.lang.String
| 归档时间: |
|
| 查看次数: |
30762 次 |
| 最近记录: |