如何在JavaFX上的XYChart中删除“为varargs创建未经检查的泛型数组”?

时间:2019-08-18 06:02:21

标签: java javafx-8

我正在学习JavaFX,而且还是Java的新手。 (我在Windows中使用Java8。)

示例代码如下。

    XYChart.Series series1 = new XYChart.Series();
    series1.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泛型编程方面很弱,并且希望通过示例代码了解更多信息。

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

谢谢。

2 个答案:

答案 0 :(得分:2)

更改看起来像这样的行

new XYChart.Data("2015", 70)

使用“钻石运算符” <>指定一个推断的通用类型。喜欢,

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

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

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

答案 1 :(得分:0)

以下内容在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回答的最后评论。基本上,使用方法@SuppressWarning时,您无法摆脱警告(除了使用注释addAll()之外)。

相关问题