Java 类型不匹配:无法从列表转换为对象[]
我需要实现下面的代码,但我有问题Java 类型不匹配:无法从列表转换为对象[],java,Java,我需要实现下面的代码,但我有问题 Type mismatch: cannot convert from List to Object[] for Object[] nearestPoint = kdtree.nearest(point.toDouble(), 2); 在下面的代码中 public int getNearestNeighbour(Point point) { int result = 0; try { Object[] nearestPoint =
Type mismatch: cannot convert from List to Object[] for Object[] nearestPoint = kdtree.nearest(point.toDouble(), 2);
在下面的代码中
public int getNearestNeighbour(Point point) {
int result = 0;
try {
Object[] nearestPoint = kdtree.nearest(point.toDouble(), 2);
result = (Integer)nearestPoint[1];
} catch(Exception e) {
debug(e);
result = -1;
}
return result;
}
这个错误几乎可以解释它自己。看起来kdtree.nearest()返回一个列表,但您试图将其存储在数组变量中。您需要更改变量的类型或从列表转换为数组。更改
Object[] nearestPoint = kdtree.nearest(point.toDouble(), 2);
result = (Integer)nearestPoint[1];
到
将代码更改为以下内容:
Object[] nearestPoint = kdtree.nearest(point.toDouble(), 2).toArray();
这将转换返回到
对象的数组的列表
。作为参考。什么是kdtree
?方法最近的
在哪里?最近的
返回一个列表
。不要期望对象[]
.KDtree是一个执行JAR文件,其中包含用于返回给定点的最近点的最近方法。我尝试了许多转换从列表到对象,但它不工作。。。请告知me@user3166301因为您不能将列表设置为对象的大小写。查看列表API获取您的答案;一般来说,当您不确定如何处理对象时,最好从这里开始。
Object[] nearestPoint = kdtree.nearest(point.toDouble(), 2).toArray();