gpt4 book ai didi

javafx 图表,JavaFx - 推断变量

转载 作者:太空宇宙 更新时间:2023-11-04 10:35:51 27 4
gpt4 key购买 nike

我在我的项目中使用javafx图表并且我想创建一些类获取 2 种类型的日期并在 javafx 中返回不同的图表。我想通用我的代码,但出现编译错误!编译器:jdk 9。

父类(super class)

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

最佳答案

一个BarChart<X,Y> n (或者通常是 XYChart<X,Y> )需要 xAxis类型 Axis<X>和一个yAxis类型 Axis<Y> 。您已定义xAxis成为CategoryAxis ,这是一个Axis<String>yAxis成为NumberAxis ,这是一个Axis<Number>

因此,唯一的类型是 BarChart您可以使用这些特定轴创建 BarChart<String, Number> 。编译器会提示,因为您的类型变量没有约束 TK这将迫使他们成为 StringNumber ,分别。

尚不完全清楚您想在这里做什么。一个BarChart 必须使用 String 类型的一个轴和类型之一 Number 。这些通常可以采用任一顺序,但您的代码会创建一个垂直条形图(通过使用 CategoryAxis 作为 x 轴)。因此,您使用的数据必须Series<String, Number> ,所以你必须有 TStringKNumber ;类型变量的类型无法选择,因此将其设为泛型实际上毫无意义。

关于javafx 图表,JavaFx - 推断变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49489573/

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