2014-01-06 52 views
0

我需要执行下面的代码,但我在下面类型不匹配:不能从列表转换为Object []

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; 
} 
+5

'nearest'返回'List'。不要指望'Object []'。 –

+0

什么是'kdtree'? “最近”的方法在哪里? –

+0

KDtree是一个执行JAR文件,它包含最近的方法以返回给定点的最近点。我尝试了许多转换从列表转换为对象,但它不工作...请告诉我 – mumenh

回答

0

更改您的代码如下:

Object[] nearestPoint = kdtree.nearest(point.toDouble(), 2).toArray(); 

这应该转换返回给的ObjectsArrayListSee APIs仅供参考。

0

一个代码错误相当多解释与

Type mismatch: cannot convert from List to Object[] for Object[] nearestPoint = kdtree.nearest(point.toDouble(), 2); 

问题本身。它看起来像kdtree.nearest()返回一个List,但你试图将它存储在一个数组变量。您可能需要更改变量的类型或将其从List转换为数组。

0

变化

Object[] nearestPoint = kdtree.nearest(point.toDouble(), 2); 
    result = (Integer)nearestPoint[1]; 

List nearestPoint = kdtree.nearest(point.toDouble(), 2); 
    result = (Integer)nearestPoint.get(1); //may be 0 (check he length of list before) 
相关问题