gpt4 book ai didi

java - 为什么 JList 在需要一组整数时使用 int[] 来选择索引?

转载 作者:行者123 更新时间:2023-11-30 06:52:39 26 4
gpt4 key购买 nike

JList 声明了一个方法:public void setSelectedIndices(int[] indices)

根据 Oracle 的文档更改:

the selection to be the set of indices specified by the given array

我知道Set 不能将primitive int 作为泛型类型

如何检索我要选择的索引?现在,我使用 Set<Integer> , loop through the rows and when a row is selected a add it to the Set<Integer> .

但是,我必须转换 Set<Integer>进入int[]并且没有内置函数可以做到这一点。 我已经知道如何进行翻译。

有人用过public void setSelectedIndices(int[] indices)吗?必须开发自己的转换器或使用 Guava 或 Apache 的转换器?

这似乎是 Swing 中的一个缺陷。有什么原因导致此方法不能采用 Set甚至是 List

或者有没有办法创建一组我不知道的原语?

如果方法采用 Set<Integer> 对每个开发人员来说不是更好吗?作为论据?为什么不是这样?

最佳答案

Swing 从 Java 1.2 开始可用,早于 Java 1.5 中引入的泛型。在此期间,泛型被添加到 Swing 中,其好处超过了导致向后不兼容的风险。例如, JList 本身是JList<E>从 Java 1.7 开始。因为 setSelectedIndices() “是一种清除选择然后在选择模型上使用 addSelectionInterval() 添加索引的便捷方法”,您可以根据需要重载该方法(为清楚起见省略了范围检查):

private static class MyList extends JList {

public void setSelectedIndices(Set<Integer> indices) {
ListSelectionModel model = getSelectionModel();
model.clearSelection();
for (Integer index : indices) {
model.addSelectionInterval(index, index);
}
}

关于java - 为什么 JList 在需要一组整数时使用 int[] 来选择索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38588681/

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