[Ljava.lang.String;不能转换为java.lang.String



我的DAO中有以下代码,它返回一个[Ljava.lang.String;不能转换为java.lang.String异常我想知道为什么会这样的原因和解决方案。

public Collection<Testdoc> findTestId(int idTest, String... testtype) {
StringBuffer buf = new StringBuffer("SELECT w FROM Testdoc w WHERE w.Test.idTest = :idTest");           
buf.append("AND w.testtype IN ( :testtype ) ");         
return findByQuery(buf.toString(), "idTest", idTest, "testtype ", testtype );
}

findByQuery的最后一个参数似乎是String类型。您使用了String[].

String...作为最后一个参数类型表示String[]但允许调用方使用fn("x", "y", "z")而不是fn(new String[] { "x", "y", "z" })

@user85421指出,findByQuery很可能被声明为:

Collection<Testdoc> findByQuery(String sql, String... args);

在这种情况下,您可能需要连接参数,尽管这可能仍然不正确。

然后,您需要连接数组。在没有Arrays.concat的情况下,请参阅问题如何在 Java 中连接两个数组?。

相关内容

  • 没有找到相关文章

最新更新