2012-04-05 2 views
0

Привет я получаю следующее сообщение об ошибке:Java ошибка Строка не применяется для аргументов (Список <String>)

The method setOfficeCode(String) in the type UnitForm is not applicable for the arguments (List<String>)

код Java у меня есть:

public static void main(String[] args) 
    { 
     UnitForm uform = (UnitForm) form; 

     List<String> lines = new ArrayList<String>(); 

     lines.add("Once upon a midnight dreary"); 
     lines.add("While I pondered weak and weary"); 
     lines.add("Over many a quaint and curious volume of forgotten lore"); 

     String[] linesArr = lines.toArray(new String[lines.size()]); 

     for (String line : linesArr) 
     { 
     System.out.println(line); 
     } 

     uform.setOfficeCode(lines); 
    } 

Я пытаюсь вывести, что содержится в строках в formbean в моей jsp, и если я конвертирую setOfficeCode в список, который я вижу на моем jsp, появляется с [] вокруг него, как [над многими странными и любопытными томами забытых знаний, Hi, Bye] и Я не хочу, чтобы скобки появлялись вокруг данных на jsp, и я хотел бы разбить их в отдельные строки вместо цельной строки, так что hi находится на новой строке и пока находится на новой строке и т. д.

+0

В качестве примечания. вы можете использовать для каждой конструкции список (или любой «Итерируемый»). Сначала вам не нужно извлекать массив. – jpm

+0

Почему вы преобразовываете список в массив? Вы можете перебирать список, используя тот же синтаксис, что и вы, который используется для итерации по массиву. –

ответ

2

Ваш setOfficeCode ожидает параметр String as и дает вам список строк. Либо измените определение setOfficeCode, чтобы он принял список, либо передал только одну строку из вашего списка при вызове метода.

Плюс вам не нужно преобразование массива, как вы можете сделать:

for (String line : lines) 
{ 
    System.out.println(line); 
} 
0

setOfficeCode {входной строки) не равное setOfficeCode (вход списка).

Ошибка сообщает вам точно и явно, что не так.

Итак, проблема заключается в том, что вы не понимаете, как работает ваш код.

Что нужно сделать, это подготовить свои данные перед тем, как вывести их в надлежащем формате HTML, или изменить свой JSP для обработки списка, а не только для строки.

Простейший способ сделать это будет использовать библиотеку Обще-Ланг (который, вероятно, уже в вашем пути к классам) и сделать что-то вроде:

uform.setOfficeCode(StringUtils.join(lines, "<br/>"));

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