我正在学习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泛型编程方面很弱,并且希望通过示例代码了解更多信息。
删除该警告的正确方法是什么?
谢谢。
答案 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()
之外)。