java error字符串不适用于参数(List <string>)</string>

时间:2012-04-05 19:30:20

标签: java string list arraylist

您好我不断收到以下错误:

  

UnitForm类型中的方法setOfficeCode(String)不适用于参数(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);
   }   

我正在尝试将行中包含的内容输出到我的jsp中的formbean中,并且如果我将setOfficeCode转换为列表,我在jsp上看到的就像[在...周围出现一样古怪和好奇的卷忘了传说,嗨,再见,我不希望括号出现在jsp上的数据周围,我想将它们分成单独的行而不是整个字符串,以便hi在新行和再见是在新线等。

2 个答案:

答案 0 :(得分:2)

你的setOfficeCode期望一个String作为参数,并给你一个字符串列表。更改setOfficeCode定义以使其接受列表,或者在方法调用中仅从列表中传递一个String。

另外,您也不需要进行数组转换:

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

答案 1 :(得分:0)

setOfficeCode {String input) 不等于 setOfficeCode(List input)。

该错误准确而明确地告诉您错误。

所以,问题实际上是你不了解你的代码是如何工作的。

您需要做的是在以正确的HTML格式输出数据之前准备数据,或者修改JSP以处理列表而不仅仅是字符串。

最简单的方法是使用commons-lang库(可能已经在你的类路径中)并执行以下操作:

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