【发布时间】:2018-03-26 10:44:45
【问题描述】:
我在我的项目中使用 javafx 图表,并且 我想创建一些类获取 2 类型的日期并在 javafx 中返回不同的图表。 我想通用我的代码但得到编译错误! 编译器:jdk 9.
超类
public class ChartsModel <T,K> {
private ObservableList<XYChart.Series<T,K>> list;
protected CategoryAxis xAxis;
protected NumberAxis yAxis;
private void addnode(T name,K number)
{
XYChart.Series<T, K> series = new XYChart.Series<T, K>();
series.getData().add(new XYChart.Data<T, K>(name, number));
list.add(series);
}
protected void cheraxyAxis(String xAxisname, String yAxisname) {
xAxis = new CategoryAxis();
xAxis.setLabel(xAxisname);
yAxis = new NumberAxis();
yAxis.setLabel(yAxisname);
}
protected void addGroup(T[] name,K[] number,int conter){
for (int i=0;i<conter;i++)
addnode(name[i],number[i]);
}
public ObservableList<XYChart.Series<T, K>> getList() {
return list;
}
public CategoryAxis getxAxis() {
return xAxis;
}
public NumberAxis getyAxis() {
return yAxis;
}
}
这是我的子类之一:
public class Barcharts<T ,K > extends ChartsModel <T,K>
{
private Barcharts() {}
public BarChart<T,K> getBarchart(String xAxisname, String yAxisname,String Title,T[] name,K[] number,int conter)
{
cheraxyAxis(xAxisname,yAxisname);
BarChart<T,K> barChart;
barChart = new BarChart<>(xAxis,yAxis);
//Error!!!
barChart.setTitle(Title);
addGroup(name,number,conter);
barChart.setData(getList());
return barChart;
}
}
但是当我使用这条线时它可以工作但不是通用的:
BarChart<String, Number> chart = new BarChart<>(xAxis, yAxis);
错误是: 错误:(13, 32) java:不兼容的类型:无法推断 javafx.scene.chart.BarChart 的类型参数 原因:推理变量 X 具有不兼容的等式约束 T,java.lang.String
【问题讨论】:
标签: java javafx javafx-8 javafx-2