2014-01-06 58 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) 
相關問題