确保对象类型[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

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

if(object instanceof List<Message>)

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

java instanceof
1个回答
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);
     }
   }
 }
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.