2016-07-11 6 views
-4

Я пытаюсь вернуть ArrayList к значению строки в Java и у меня есть это в весеннем применении спящемНесоответствие типа: не может конвертировать из списка <InfoIndividual> в строку

@Override 
    public String toString() { 
     return _individuals; 
    } 

приведенный выше код дает мне типа несоответствие.

это объявление

List<InfoIndividual> _individuals = new ArrayList<InfoIndividual>(); 

, что я получаю неправильно?

ответ

2

Чтобы напечатать Collection вы можете использовать этот обходной путь:

@Override 
public String toString() { 
    return Arrays.toString(_individuals.toArray()); 
} 

Если это не соответствует вашим потребностям вы можете просматривать список в то время как переопределение ToString из InfoIndividual.

@Override 
public String toString() { 
    StringBuilder sb = new StringBuilder(); 
    for (InfoIndividual i : _individuals) { 
     sb.append(i); 
    } 

    return sb.toString(); 
} 

И:

class InfoIndividual { 
    // attributes 

    @Override 
    public String toString() { 
     // print needed attributes 
    } 

} 
+0

@Blaze это по умолчанию 'ToString()' выход, вы должны переопределить его, как показано на втором подходе. –

0

Поскольку ваш вопрос не дает никаких сведений о том, как в результате строка должна быть отформатирована, вы могли бы просто использовать список в ToString-метод, который будет производить вывод, как [ "первый второй третий"].

Предполагая, что ваш InfoIndividual переопределяет ToString appropiatley, вы можете просто сделать что-то вроде этого:

public String toString(){ 
    return _individuals.toString(); 
} 
Смежные вопросы