2015-04-29 41 views
0

我有一個List listObject,我想爲listObject的每個對象存儲一個List pointListForObject。 我如何使它工作?如何將自己的數據類型的列表存儲在對象數組列表中

class Points { 
    private int start; 
    private int stop; 

    public Points() { 
     start = 0; 
     stop = 0; 
    } 

    setter and getter... 
} 

List<Object[]> listObject = new ArrayList<Object[]>; 
List<Points> pointListForObject = new ArrayList<Points>; 
    ... 
    Points point= new Point(); 
    point.setStart(1); 
    point.setStop(2); 

    pointListForObject.add(point); 
    listObject.get(0)[1] = pointListForObject; 

現在我想在另一種方法中獲得積分,但我不知道如何以正確的方式進行投射或轉換。 我的想法是:

List<Points> usePointsOfObject = (List<Points>) listObject.get(0)[1]; 

在這裏,我得到一個:螺紋 異常"main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.util.List

我嘗試不同的可能性(投或轉換),我知道,但它不工作 我沒有想法..

+0

我不明白listObject.get(0)[1] = pointListForObject; listObject是一個包含Object []的列表,pointListForObject是一個列表。這是JVM拋出異常的地方。 –

+0

嗨,謝謝你的回答。我想在「對象數組listObject.get(0)[1]」中存儲列表「pointListForObjects」(這裏有很多點)作爲一個元素。可能嗎?因爲在listObject.get(0)[1]中存儲「int變量」或「字符串變量」是可能的,所以如何存儲和恢復列表? – speedyG

回答

0

pointListForObject.add(point);對象[] objArr = list.toArray(new Object [pointListForObject.size()]);} [

then listObject.add(objArr);

+0

pointListForObject.add(point); 你應該有Object [] objArr = pointListForObject.toArray(new Object [pointListForObject.size()]); =>我同意。 然後listObject.add(objArr); – speedyG

+0

你想添加對象數組到列表(listObject)。這就是我爲什麼寫它。如果你想要別的東西,請讓我知道 –

+0

pointListForObject.add(point); 你應該有Object [] objArr = pointListForObject.toArray(new Object [pointListForObject.size()]); =>我同意。 然後listObject.add(objArr); =>我不同意,我需要列表和對象元素的正確位置,這就是爲什麼我使用listObject.get(0)[1] = objArr;但現在我的問題是,我如何從對象恢復列表?具有意義:列表 use =(List )listObject.get(0)[1]; – speedyG

0

現在我解決我的問題

class Points { 
    private int start; 
    private int stop; 

    public Points() { 
     start = 0; 
     stop = 0; 
    } 

    setter and getter... 
} 

List<Object[]> listObject = new ArrayList<Object[]>; 
List<Points> pointListForObject = new ArrayList<Points>; 
    ... 
    Points point= new Point(); 
    point.setStart(1); 
    point.setStop(2); 

要存儲列表陣列

pointListForObject.add(point); 
      Object ob = pointListForObject; 
      listObject.get(0)[1] = ob; 

的目的是從數組的對象恢復列表,並使用它作爲一個列表

Object ob = (Object) listObject.get(0)[1]; 
List<Points> list = (List<Points>) ob; 

感謝您的幫助和分享您的知識和時間!

相關問題