【问题标题】:How to remove "unchecked generics array creation for varargs" in XYChart on JavaFX?如何在 JavaFX 的 XYChart 中删除“为可变参数创建未经检查的泛型数组”?
【发布时间】:2019-12-23 19:21:23
【问题描述】:

我正在学习 JavaFX,我也是 Java 新手。 (我在 Windows 中使用 Java8。)

示例代码如下。

XYChart.Series series1 = new XYChart.Series();
eries1.setName("남자");
series1.setData(FXCollections.observableArrayList(
        new XYChart.Data("2015", 70),
        new XYChart.Data("2016", 40),
        new XYChart.Data("2017", 50),
        new XYChart.Data("2018", 30)
));

在这段代码中,我可以看到一个警告。也就是说,

Unchecked call to 'Data(X, Y)' as a member of raw type 'javafx.scene.chart.XYChart.Data'

虽然代码有效,但我想删除这个警告,因为我在 Java 泛型编程方面很弱,想通过示例代码了解更多信息。

删除该警告的正确方法是什么?

谢谢。

【问题讨论】:

    标签: java javafx-8


    【解决方案1】:

    改变看起来像的线条

    new XYChart.Data("2015", 70)
    

    使用“菱形运算符”<> 指定推断的泛型类型。喜欢,

    new XYChart.Data<>("2015", 70)
    

    如果使用旧版本的 Java(不带菱形运算符),请提供 XYChart.Data 中记录的 &lt;X,Y&gt; 类型参数,例如

    new XYChart.Data<String, Integer>("2015", 70)
    

    【讨论】:

    • 不应该是:XYChart.Series&lt;String, Integer&gt; series1 = new XYChart.Series&lt;&gt;(); 吗?顺便说一句,OP 确实提到他使用的是 Java 8,因此支持菱形运算符。
    • @Elliott Frisch,我按照您的建议更改了代码。我想删除的警告被删除,但出现了新的警告。它告诉我FXCollections.observableArrayListunchecked generics array creation for varargs parameter。这是什么以及如何删除此警告?谢谢。
    • @Abra,我按照您的建议更改了代码,它告诉我两个警告。 Unchecked assignment FXCollections.observableArrayListUnchecked callData()
    【解决方案2】:

    以下内容在 java 12 中没有警告

    XYChart.Series<String, Integer> series1 = new XYChart.Series<>();
    ObservableList<XYChart.Data<String, Integer>> list = FXCollections.observableArrayList();
    list.add(new XYChart.Data<>("2015", 70));
    list.add(new XYChart.Data<>("2016", 40));
    list.add(new XYChart.Data<>("2017", 50));
    list.add(new XYChart.Data<>("2018", 30));
    series1.setData(list);
    

    请参阅我对 Elliot 回答的最后评论。使用方法addAll()时,基本上你无法摆脱警告(除了使用注释@SuppressWarning)。

    【讨论】:

      猜你喜欢
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      • 2014-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多