2011-08-02 24 views
5

我是一個初學者在smooks。我正面臨一個問題。這是java-java轉換。我有一個列表,其中我有一個包含2個對象的內部列表。我如何才能實現list.list列出副本在smooks?如何實現list.list列表中的副本in smooks

+0

@JB。謝謝我無法創建一個如此在java下添加的標籤 – shree

+1

如何添加一個您嘗試過的示例,以及爲什麼要嘗試這樣做,然後那些試圖回答的地方有一個開始的地方 – nuzz

回答

0

從我能告訴smooks沒有提供此方法。但是,您可以通過迭代列表並將內容提取到新列表中來實現此目的。

您可以定義一個函數來做到這一點,例如:

public List<Object> extractEmbeddedList(List<List<Object>> embeddedList) 
    { 
     List<Object> extractedList = new ArrayList<Object>(); 

     for (List<Object> l : embeddedList) { 
      for (Object o : l) { 
       extractedList.add(o); 
      } 
     } 
     return extractedList; 
    } 

這裏是它使用的例子:

List<List<Object>> embeddedList = new ArrayList<List<Object>>(); 
    List<Object> someEmbeddedObjects = new ArrayList<Object>(); 
    List<Object> moreEmbeddedObjects = new ArrayList<Object>(); 
    List<Object> normalList = new ArrayList<Object>(); 

    someEmbeddedObjects.add("I'm a String!"); 
    someEmbeddedObjects.add("I'm another String!"); 

    moreEmbeddedObjects.add(5); 
    moreEmbeddedObjects.add(6); 

    embeddedList.add(someEmbeddedObjects); 
    embeddedList.add(moreEmbeddedObjects); 

    normalList = extractEmbeddedList(embeddedList); 

    System.out.println(normalList.toString()); 
    //Output is: [I'm a String!, I'm another String!, 5, 6] 
+0

使用谷歌的番石榴庫,這僅僅是Lists.newArrayList(Iterables.concat(embeddedList)) –

+0

或者那也行得通:)如果你不使用谷歌的番石榴庫比代碼實現相同的結果 – Deco