我正在创建一个使用JavaFX 2.2的应用程序并遇到了问题。我正在尝试使用LineChartBuilder
,如下所示:
LineChart<Number, Number> chart = LineChartBuilder.<Number, Number>
create()
.XAxis(NumberAxisBuilder.create().label("X axis").build())
.YAxis(NumberAxisBuilder.create().label("Y axis").build())
.build();
但是,我收到以下编译器错误:
java: reference to create is ambiguous, both method create() in
javafx.scene.layout.RegionBuilder and method <X,Y>create() in
javafx.scene.chart.LineChartBuilder match
和
java: cannot find symbol
symbol: method XAxis(javafx.scene.chart.NumberAxis)
location: class javafx.scene.layout.RegionBuilder<capture#1 of ?>
我知道第一个错误意味着LineChartBuilder
从RegionBuilder
下降并且都定义了create()
方法,第二个意味着假设该方法来自RegionBuilder
,因此不能找到XAxis
方法。我甚至尝试过它,
LineChart<Number, Number> chart =
((LineChartBuilder<Number, Number, ?>)
LineChartBuilder.<Number, Number>create())....
但是我得到了相同的编译器错误。
我的问题是,这是LineChartBuilder
中的错误还是我使用错了?也许甚至有一种解决方法?
答案 0 :(得分:0)
您确定使用的是JavaFX 2.2而不是JDK8预发布吗?
JDK8将为使用JavaFX 2.2编码的构建器遇到这些问题:请参阅RT-24272。
解决方法是使用new LineChart(xaxis, yaxis)
。另请参阅此问题的Oracle forum thread帖子。