gpt4 book ai didi

java - InstanceOf 方法在泛型中使用?

转载 作者:行者123 更新时间:2023-12-01 07:37:53 28 4
gpt4 key购买 nike

由于泛型类型信息在运行时被删除,所以使用instanceof是非法的除无界通配符类型之外的参数化类型上的运算符。

我从有效的java版本2中提取了这个语句。它说使用instanceOf的首选方法是:

// Legitimate use of raw type - instanceof operator
if (o instanceof Set) { // Raw type
Set<?> m = (Set<?>) o; // Wildcard type
...
}

有人可以解释一下这个概念吗?(我理解具体化和删除概念)

最佳答案

如果您了解删除的工作原理,您就会知道 instanceof无法检查删除类型,因此只能与原始类型一起使用。

同样,在确定该对象是某种 Set 后,您无法确定该 Set 的类型。所以你只能(安全地)使用Set<?> (这意味着您从集合中取出的所有内容都不能缩小到超过 Object ,并且您根本无法放入任何内容)。

关于java - InstanceOf 方法在泛型中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9288406/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com