为什么在Java无限制的通配符类型上允许使用instanceof运算符,而在Java中的其他参数化类型上却不允许呢?

为什么在Java无限制的通配符类型上允许使用instanceof运算符,而在Java中的其他参数化类型上却不允许呢?,第1张

为什么在Java无限制的通配符类型上允许使用instanceof运算符,而在Java中的其他参数化类型上却不允许呢?

关键是对象知道其具体类,但不知道其通用类型参数。因此,如果我们构造一个

ArrayList<Integer>
,则在执行时就知道它
ArrayList

某种 类型的-但它不知道该
Integer
部分。

ArrayList
某种”部分恰好
ArrayList<?>
意味着什么,这就是为什么:

if (foo instanceof ArrayList<?>)

已验证。这等效于使用原始类型:

if (foo instanceof ArrayList)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5490738.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存