我有一个对象,我想检测出什么类型,所以我可以调用
if (obj isa Integer)
put(key,integerval);
if (obj isa String)
put(key,stringval);
if (obj isa Boolean)
put(key,booleanval);
答案 0 :(得分:26)
你真的非常接近!
if (obj instanceof Integer)
put(key,integerval);
if (obj instanceof String)
put(key,stringval);
if (obj instanceof Boolean)
put(key,booleanval);
来自JLS 15.20.2:
RelationalExpression
instanceof
ReferenceType在运行时,如果 RelationalExpression 的值不是
instanceof
并且可以投射引用,则true
运算符的结果为null
( §15.16)到 ReferenceType 而不提出ClassCastException
。否则结果为false
。
看看你的使用模式,看起来你可能会遇到比这更大的问题。