“instanceof”的泛型运行时检查
我有一个名为 Node
的对象。对象 NodeInternal
和 NodeLeaf
继承自 Node
。
我正在尝试使用 instanceof
测试对象的类型,如下所示:
if (node instanceof NodeInternal)
。我没有添加
因为在运行时,该类型被删除。但是,如果 NodeInternal
上没有
,我会收到以下警告:NodeInternal 是原始类型。对泛型类型 NodeInternal
。
这种情况我该怎么办?
I have an object called Node<Value>
. Objects NodeInternal<Value>
and NodeLeaf<Value>
inherit from Node<Value>
.
I am trying to test what is the type of the object using instanceof
as follows:
if (node instanceof NodeInternal)
. I did not add <Value>
because upon runtime, the type is dropped. Without <Value>
on NodeInternal
however, I get the following warning: NodeInternal is a raw type. References to generic type NodeInternal<Value> should be parameterized
.
What should I do in this case?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用无界通配符:
Use an unbounded wildcard:
http://www.java2s.com/Code/Java/Language-基础知识/Usetheinstanceofoperatorwithgenericclasshierarchy.htm
使用<代码>。
您还可以玩游戏:
Java:instanceof Generic
http://www.java2s.com/Code/Java/Language-Basics/Usetheinstanceofoperatorwithagenericclasshierarchy.htm
Use
<?>
.You can also play games:
Java: instanceof Generic