确保对象类型

时间:2018-01-10 08:49:35

标签: java instanceof

每个人都知道在进行任何演员之前我们必须使用instanceof检查对象类型,但是,对于泛型,编译器不允许我们使用这样的泛型来检查它。

if(object instanceof List<Message>)

我正在调查其解决方案,有些人说我们只需要与List核对,但这对我无效。 我还检查过一些开发人员建议使用isAssignableFrom,但需要object才能拥有实例。 那么如何在不创建技巧对象的情况下检查该对象是List Message(而不仅仅是一个列表)?

1 个答案:

答案 0 :(得分:0)

有点天真的方法

 Object deserializedList = fetchList();
 if (deserializedList instanceof List) {
   for (Object obj : (List)deserializedList) {
     if (obj instanceof Message) {
       Message message = (Message)obj;
       System.out.println("message: " + message);
     } else {
       System.out.println("not a message: " + obj);
     }
   }
 }