2014-02-03 2 views
0

я есть в одном классе follwoing кодаКак скопировать список с двумя разными типами?

List<String> list = new ArrayList<String>(objType.getParameters()); 

Чтобы скопировать список в списке, вы можете просто сделать так: List<String> list = new ArrayList<String>(objType.getParameters());

Но это если objType.getParameters() список имеет строку. теперь в моем случае это не так, но его объект Parameter.

public class Object_type { 

    public String object_type; 
    public Property properties; 
    private List<Parameter> parameters; 
    public List<Restriction> restriction; 

    public List<Parameter> getParameters() { 
     return parameters; 
    } 

} 

И мой класс параметров - это просто структура с строками и целыми числами.

public class Parameter { 

    String parameter; 
    String data_type; 
    String description; 
    int min_no; 
    int max_no; 
    int order1; 
    int nested; 
    String default1; 
    String format; 

} 

У меня есть List<String>, который должен быть так и List<Parameter> Это должно быть так Так как я могу скопировать мой список в мой, как в этом случае ?. Collection.copy не работает ни.

// Create a list of node and compile the xpath expression 
      NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(
        xmlDocument, XPathConstants.NODESET); 

      arr = new String[nodeList.getLength()][constants.getParamColumns().length]; 

      // Loop thru the list and add to string array. 
      for (int i = 0; i < nodeList.getLength() 
        /constants.getParamColumns().length; i++) { 
       for (int j = 0; j < constants.getParamColumns().length; j++) { 

        arr[i][j] = nodeList.item(
          j + (i * constants.getParamColumns().length)) 
          .getTextContent(); 

        list.add(nodeList.item(
          j + (i * constants.getParamColumns().length)) 
          .getTextContent()); 
        System.out.println("current size in list : " + list.size()); 
       } 
      } 
      setArr(arr); 


         Add list to List<Parameter> here <----- 
      System.out.println(" size of list : " 
        + objType.getParameters().size()); 
+1

Попробуйте описать точную проблему, которую вы пытаетесь решить, а не решение, которое вы пытаетесь сделать. – kan

+0

У меня есть nodeList из строки, исходящей из разбора xml, который я хочу получить в List of в свой класс struct – Sembrano

+1

Просто напишите код, который анализирует список строк и создает объекты 'Parameter', здесь нет магии, просто сделайте это как есть. – kan

ответ

0

Вы не можете. То же самое, что вы не можете назначить одну несовместимую переменную типа другой, например. «Строка s = новый параметр()».

+0

Да, похоже, но как я могу решить эту проблему? – Sembrano

+0

@Sembrano Проблема «присвоение одного типа другому несовместимому типу» не разрешима, укажите свою точную проблему. – kan

0

Вы не можете назначить параметрам строку. Нужно изменить тип списка

List<Parameter > list=objType.getParameters(); //UPDATED 
+0

Можно сделать это напрямую - * Список list = objType.getParameters(); * – gowtham

+0

@gowtham о да. Извиняюсь за то, что не смотрел полный код – Edge

+0

Нет, вы не можете так делать – Sembrano

0

Делать это довольно Смутно, Вы можете перебирать список String, которые вы получаете и вручную создать объект параметров, манипулируя String, полученных, а затем добавить объект Parameter в список Параметры.

Он будет работать только в том случае, если вы можете манипулировать полученной строкой и точно определить, какую информацию вы хотите внести в свой объект параметров.

Надеюсь, это поможет!

Удачи!

+0

. Это проблема, о которой я не знаю. Его предстоящее отклонение от пользовательского selction. Я обновил свой код. – Sembrano

Смежные вопросы