[Ljava.lang.String;无法转换为java.lang.String
我的DAO中有以下代码,它返回一个[Ljava.lang.String;无法转换为java.lang.String异常 我想知道为什么会有这样的原因和解决办法[Ljava.lang.String;无法转换为java.lang.String,java,variadic-functions,Java,Variadic Functions,我的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 = :idTe
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 );
}
公共集合findTestId(int-idTest,String…testtype){
StringBuffer buf=新StringBuffer(“从Testdoc w中选择w,其中w.Test.idTest=:idTest”);
buf.append(“和w.testtype IN(:testtype)”);
返回findByQuery(buf.toString(),“idTest”,idTest,“testtype”,testtype);
}
findByQuery的最后一个参数的类型似乎是String
。您使用了String[]
String…
作为最后一个参数类型表示String[]
但允许调用方使用fn(“x”、“y”、“z”)
而不是fn(新字符串[]{x”、“y”、“z})
@user85421指出,findByQuery
很可能声明如下:
Collection<Testdoc> findByQuery(String sql, String... args);
集合findByQuery(字符串sql、字符串…args);
在这种情况下,您可能需要连接参数,尽管这可能仍然不正确
然后需要连接数组。如果没有
arrays.concat
,请参见问题。如果不知道第二个参数的含义/作用,为什么要将其声明为…
varargs参数?提示:它会将参数转换为数组。[Ljava.lang.String;
是字符串[]
的内部类名。这是否回答了您的问题?