[ljava.lang.string;无法转换为java.lang.string

xoshrz7s  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(647)

我的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 );
}
mhd8tkvw

mhd8tkvw1#

最后一个论点 findByQuery 似乎属于 String . 你用了一个 String[] . String... 因为最后一个参数类型表示 String[] 但允许调用者使用 fn("x", "y", "z") 而不是 fn(new String[] { "x", "y", "z" }) .
@用户85421指出 findByQuery 很可能是这样的:

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

在这种情况下,您可能需要串联参数,尽管这可能仍然不正确。
然后需要连接数组。如果没有 Arrays.concat ,请参阅问题“如何在java中连接两个数组?”?。

相关问题