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

时间:2017-04-07 08:53:45

标签: java javafx hashmap

我试图在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)。

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

2 个答案:

答案 0 :(得分:6)

你似乎导入了错误的&#34; String&#34;当前文件中的类(com.org.apache.xpath.internal.operations.String)和Data类需要正确的(java.lang.String)。确保导入正确(即删除第一种类型的导入)。

另见this question,提问者遇到类似问题

答案 1 :(得分:0)

此代码段:

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