jFreeChart调用addValue方法出现引用歧义报错该如何解决
jFreeChart
addValue引用歧义报错解决方案 报错原因
DefaultCategoryDataset的addValue方法存在两个重载,你的入参同时匹配两个方法的参数转换规则,编译器无法判定调用目标:
- 重载1:
addValue(Number value, Comparable rowKey, Comparable columnKey) - 重载2:
addValue(double value, Comparable rowKey, double columnKey)
你传入的x[i]、y[i]均为int类型,int既可以自动装箱为实现Comparable接口的Integer(属于Number子类)匹配重载1,也可以自动类型转换为double匹配重载2,因此触发歧义报错。
修复方案
可任选以下一种方案修改:
- 方案1:将第三个参数显式转为
Integer(推荐,符合分类数据集的常规使用场景)private DefaultCategoryDataset createDataset() { DefaultCategoryDataset dataset = new DefaultCategoryDataset( ); for(short i = 0; i < 200; i++){ dataset.addValue(x[i], eq, Integer.valueOf(y[i])); } return dataset; } - 方案2:将数值类参数统一显式转为
double,明确匹配重载2private DefaultCategoryDataset createDataset() { DefaultCategoryDataset dataset = new DefaultCategoryDataset( ); for(short i = 0; i < 200; i++){ dataset.addValue((double)x[i], eq, (double)y[i]); } return dataset; }
内容的提问来源于stack exchange,提问作者Jacques Xuereb
相关产品推荐
相关产品推荐

