在Java中做“'是'最简单的方法是什么?

时间:2008-10-26 03:18:15

标签: java typechecking

许多语言都有检查Object是否属于某种类型(包括父类)的工具,使用'is'实现并使用如下:

if(obj is MyType)

或者稍微繁琐一点,您可以在其他语言中使用'as'关键字进行检查,以进行软类型转换并查看结果是否为null。

我多年没有使用Java了,而且我正在快速恢复它,但是Java确实可以轻松地做到这一点,而无需深入研究Reflection API?

提前感谢您的回答。我在这里和其他地方都搜索过,但所涉及的关键词非常通用,即使我确定这有一个简单的答案,谷歌搜索也很难。

3 个答案:

答案 0 :(得分:16)

if (objectReference instanceof type){
    //Your code goes here
}

更多信息here

答案 1 :(得分:7)

您只能将instanceof与类文字一起使用:即:

Class type = String.class;

if (myObj instanceof String) // will compile

if (myObj instanceof type) //will not compile

另一种方法是使用方法Class.isInstance

if (type.isInstance(myObj)) // will compile

答案 2 :(得分:1)

如果obj instanceof TargetType位于包含TargetType的类型层次结构中,

obj将返回true。

请参阅Sun's tutorial