2011-08-02 5 views
5

Soy un principiante en smooks. Estoy enfrentando un problema. Esta es la transformación java-java. Tengo una lista y dentro de eso tengo una lista interna con 2 objetos. ¿Cómo puedo lograr list.list para listar copy en smooks?Cómo conseguir list.list para listar copy in smooks

+0

@JB. Gracias. No pude crear una etiqueta así que agregué bajo java – shree

+1

¿Qué tal si agregas un ejemplo de lo que has intentado y por qué estás tratando de hacerlo, entonces aquellos que intentan responder tienen un lugar donde comenzar – nuzz

Respuesta

0

Por lo que puedo decir smooks no tiene un método que proporciona esto. Sin embargo, puede lograr esto al iterar sobre las listas y extraer los contenidos en una nueva lista.

se puede definir una función para hacer esto, por ejemplo:

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

Aquí es un ejemplo de que se utilice:

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

usando la biblioteca de guayaba de Google, esto es simplemente Lists.newArrayList (Iterables.concat (embeddedList)) –

+0

O eso también funciona :) Si no usas la biblioteca de guayaba de Google, el código logrará el mismo resultado – Deco