首页 > 解决方案 > Java CriteriaBuilder:传递的类型 CriteriaBuilder.In 不适用于参数

问题描述

我对 JAVA 很陌生,但我有其他语言的经验,例如(C、C++、PHP)

所以我在工作中遇到了这个错误,我完全被难住了。这是函数的片段:

    private void addIn(CriteriaAPIHelper<TgEvent> helper,
        List<Predicate> condList, Path<?> path, Object value) {

    if (this.isNullOrEmpty(value)) {
        return;
    }
    if (value instanceof Object[] && ((Object[]) value).length == 0) {
        return;
    }
    if (value instanceof List && ((List) value).isEmpty()) {
        return;
    }
    if (value instanceof Set && ((Set) value).isEmpty()) {
        return;
    }

    condList.add(helper.getBuilder().in(path).value(value));
}

问题出在这一行:

condList.add(helper.getBuilder().in(path).value(value));

错误是:

The method value(capture#7-of ?) in the type CriteriaBuilder.In<capture#7-of ?> is not applicable for the arguments (Object)

我尝试将“值”转换为 Object,但错误仍然存​​在。我错过了什么吗?如果有人能解释这一点,那将意义重大。非常感谢


相关来源:

public class CriteriaAPIHelper<Entity extends AbstractPflameEntity> {
    ....
    private CriteriaBuilder builder;

    public CriteriaBuilder getBuilder() {
    return builder;
    ....
}

标签: java

解决方案


推荐阅读