每个人都知道在进行任何演员之前我们必须使用instanceof
检查对象类型,但是,对于泛型,编译器不允许我们使用这样的泛型来检查它。
if(object instanceof List<Message>)
我正在调查其解决方案,有些人说我们只需要与List
核对,但这对我无效。
我还检查过一些开发人员建议使用isAssignableFrom
,但需要object
才能拥有实例。
那么如何在不创建技巧对象的情况下检查该对象是List
Message
(而不仅仅是一个列表)?
答案 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);
}
}
}