gpt4 book ai didi

java - 将项目添加到 JComboBox 时发出警告

转载 作者:行者123 更新时间:2023-11-30 07:53:08 24 4
gpt4 key购买 nike

我想在没有任何警告的情况下使用 JComboBox,并且尽可能没有警告抑制。我想要将一个字符串添加到 JComboBox 中。因此,通常,要将项目放入 JComboBox 中,我使用:

String list [] = {"Hello", "World"};
JComboBox <String> cboHello = new JComboBox <> (list);

此代码消除了我的编译中的这些警告:

Note: Sample.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

但是,如果我想向 JComboBox 添加项目怎么办?我尝试过这些:

1. Object itObj = "Foo";
cboHello.addItem(itObj);

2. cboHello.addItem("Foo");

3. cboHello.addItem <String> ("Foo");

第一个和第三个生成了错误。第二个并没有消除警告。我还检查了 Java API 文档并尝试了这个:

comboBox.addItem(makeObj("Item 1"));
private Object makeObj(final String item) {
return new Object() { public String toString() { return item; } };
}

但它并没有消除警告。我应该怎么办?提前致谢!

最佳答案

当你打电话时

JComboBox <String> cboHello = new JComboBox <> (list);

您已将 String 作为 JComboBox 的通用参数传递,这告诉 JComboBox 在其 addItem 方法中仅接受 String。 (从 Java 7 开始 JComboBox 引入了泛型类型)

  • 第一个和第四个本质上是相同的。您正在尝试将对象传递给仅接受字符串的方法。由于对象不能隐式转换为 String,因此必须显式转换它。

    cboHello.addItem((String)itObj);

  • 第二个是完全合法的,因为您将一个字符串传递给 addItem,它只接受 String 作为其参数

  • 第三个在语法上不正确。

关于java - 将项目添加到 JComboBox 时发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33064105/

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