gpt4 book ai didi

java - 泛型 - (elements instanceof List) 的合法替代品

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:47:21 25 4
gpt4 key购买 nike

我有一个唯一参数 (List elements) 将元素设置为 ListModel 的方法,但我需要进行验证以查看通用类型是否实现了可比性,因为这样的事情:

if (elements instanceof List<? extends Comparable>)

是非法的,我不知道如何进行正确的验证。

更新

我已经使用以下方法完成了此验证:

(elements.size() > 0 && elements.get(0) instanceof Comparable)

但我想知道是否有更清洁的解决方案,例如使用反射?

提前致谢。

最佳答案

列表的通用类型是erased at runtime .为此,您需要在方法签名中要求参数或单独测试每个元素。

public void doSomething(List<? extends Comparable> elements) {}

for (Object o : elements) {
if (o instanceof Comparable) {}
}

如果您可以控制代码,前者是首选且更简洁;如果需要,后者可以包装在实用方法调用中。

关于java - 泛型 - (elements instanceof List<? extends Comparable>) 的合法替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6975054/

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