字符串不能应用于 com.org.apache.xpath.internal.operations.String



我正在尝试在JavaFX中创建一个PieChart,我想用来自HashMap的数据填充它。

这是我的代码:

public Graph(HashMap<String, Double> chartData) {
    ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList();
    for (Map.Entry<String, Double> entry: chartData.entrySet()) {
        String s = entry.getKey();
        new PieChart.Data(entry.getKey(), entry.getValue());
        //System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
    }
    chart = new PieChart(pieChartData);
    chart.setTitle("Imported Fruits");
}

我面临的问题是,当我尝试使用 entry.getKey() 作为字符串时,出现以下错误:

Data 中的数据(java.lang.String, double(不能应用于 (com.org.apache.xpath.internal.operations.String, Double(.

字符串标记为红色,当我用"Some text"替换entry.getKey()时,它确实有效。原因是什么?

您似乎在当前文件中导入了错误的"字符串"类(com.org.apache.xpath.internal.operations.String(,并且数据类需要正确的类(java.lang.String(。确保您的导入正确(即删除第一种类型的导入(。

另请参阅此问题,提问者遇到类似问题的地方

以下代码片段:

new PieChart.Data(entry.getKey(), entry.getValue());

entry.getKey()不是字符串

String s = entry.getKey();
new PieChart.Data(s, entry.getValue());

试试吧

https://docs.oracle.com/javase/8/javafx/api/javafx/scene/chart/PieChart.Data.html

最新更新