Java方法调用不明确

Syn的:

有2种方法:

public static TermsQueryBuilder termsQuery(String name, int... values) {
    return new TermsQueryBuilder(name, values);
}
public static TermsQueryBuilder termsQuery(String name, Object... values) {
    return new TermsQueryBuilder(name, values);
}

当我打电话

termsQuery("operatorType", 1);

它说,这是不明确的。

请帮忙 ...

所有的方法都是在Elasticsearch,例如:

public static TermsQueryBuilder termsQuery(String name, String... values) {
    return new TermsQueryBuilder(name, values);
}
public static TermsQueryBuilder termsQuery(String name, int... values) {
    return new TermsQueryBuilder(name, values);
}
public static TermsQueryBuilder termsQuery(String name, long... values) {
    return new TermsQueryBuilder(name, values);
}
...
public static TermsQueryBuilder termsQuery(String name, Object... values) {
    return new TermsQueryBuilder(name, values);
}

当我打电话termsQuery("operationType","1"),也不含糊。

当我打电话termsQuery("operationType",1),模棱两可。

当我打电话termsQuery("operationType",Arrays.asList(searchParam.getOperatorType()),也不含糊。

困惑.....

雷特里:

只需重命名你的方法之一或两者误差会自行消失。

与签名你的愿望,因为你的电话可以通过两种方法定义匹配你不能重载这个方法,种类intObject不是在一个超类的子类的关系,所以也不是比其他更具体。

考虑

integerTermsQuery

objectTermsQuery

编辑

正如你在你的评论指出,随着版本String...的参数并不冲突与Object...和数组是协变与String正在的子类Object

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章