繁体   English   中英

java 错误字符串不适用于 arguments(列表<string> )</string>

[英]java error String not applicable for the arguments (List<String>)

嗨,我不断收到以下错误:

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

我正在尝试将 output 包含在我的 jsp 中的 formbean 的行中的内容,如果我将 setOfficeCode 转换为列表,我在 jsp 上看到的内容将围绕它出现 [] 就像 [许多古朴而好奇的被遗忘的知识, Hi, Bye] 我不希望括号出现在 jsp 上的数据周围,我想将它们分成单独的行而不是整个字符串,这样 hi 在新行上, bye 在新线等

您的setOfficeCode需要一个字符串作为参数,并且您给它一个字符串列表。 要么更改setOfficeCode定义,使其接受一个列表,要么在方法调用时仅传递列表中的一个字符串。

另外你不需要数组转换,你也可以这样做:

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

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

该错误准确而明确地告诉您出了什么问题。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM