检查Object是否是String,HashMap或HashMap []的实例

时间:2012-02-18 02:30:15

标签: java types casting

我在java中有一个Object。有没有办法在将对象实际投射到这些对象之前检查对象是否是String,HashMap或HashMap []的实例?

如果没有,因为看起来违反直觉上面会起作用,有没有办法将它投射到每个对象中,并测试一些关于新铸造的对象,看看它实际上是否是它所铸造的对象的类型?

2 个答案:

答案 0 :(得分:31)

是:

 if(obj instanceof String)
 {
     String str = (String) obj;
     .
     .
     .
 }

顺便说一句,澄清一下:

  

[...]对新铸造的物体进行测试,看看它实际上是否是它所铸造的物体的类型?

无法将某些内容转换为无效类型。如果obj的类型为String,那么((Integer)obj)将导致在运行时引发ClassCastException

答案 1 :(得分:8)

您正在寻找instanceof运营商。

  

instanceof运算符将对象与指定类型进行比较。您   可以使用它来测试对象是否是类的实例,实例   子类的实现,或实现特定的类的实例   接口

示例:"Hello" instanceof String将返回truenew Integer(5) instanceof String将返回false