带有通配符的Java泛型类型会导致错误,但仅在Eclipse4.7.0中出现

带有通配符的Java泛型类型会导致错误,但仅在Eclipse4.7.0中出现,java,eclipse,generics,java-8,eclipse-oxygen,Java,Eclipse,Generics,Java 8,Eclipse Oxygen,我使用的是java版本1.8.0_121。我遇到的问题出现在Eclipse4.7.0中,而不是Eclipse4.6.3中。这个问题更多的是关于找出差异的原因以及是否确实存在错误,而不是修复代码。从gradle编译时没有错误 我有以下界面: public interface IPredicateFactory { public <P extends IPredicate<T>, T> IPredicate<T> createPredicateForCla

我使用的是java版本1.8.0_121。我遇到的问题出现在Eclipse4.7.0中,而不是Eclipse4.6.3中。这个问题更多的是关于找出差异的原因以及是否确实存在错误,而不是修复代码。从gradle编译时没有错误

我有以下界面:

public interface IPredicateFactory
{
    public <P extends IPredicate<T>, T> IPredicate<T> createPredicateForClass(
            final Class<P> predicateClass);
}
公共接口IPredicateFactory
{
publicIPredicate createPredicateForClass(
最后一级

predicteclass); }

下面是调用接口方法的代码:

public final class PredicateExecutor
{
    private IPredicateFactory predicateFactory;

    // some more code...

    @SuppressWarnings("unchecked")
    private final <T> IPredicate<T> createPredicate(
            final Class<? extends IPredicate<?>> predicateClass)
    {
        assert predicateFactory != null : "Unspecified predicate factory";
        final IPredicate<?> predicate = predicateFactory.createPredicateForClass(predicateClass);
        assert predicate != null : "Predicate factory should not return a null predicate";
        return (IPredicate<T>) predicate;
    }

}
公共最终类谓词执行器
{
私有IPredicateFactory谓词库;
//更多的代码。。。
@抑制警告(“未选中”)
私有最终IPredicate createPredicate(
最终类>谓词类)
{
断言谓词工厂!=null:“未指定的谓词工厂”;
最后一个IPredicate谓词=predicateFactory.createPredicateForClass(predicateClass);
断言谓词!=null:“谓词工厂不应返回null谓词”;
return(IPredicate)谓词;
}
}
Eclipse 4.7.0给了我以下错误:

The method createPredicateForClass(Class<P>) in the type IPredicateFactory is not applicable for the arguments (Class<capture#1-of ? extends IPredicate<?>>)

类型IPredicateFactory中的方法createPredicateForClass(类

)不适用于参数(类您是否在eclipse中清理了不工作的项目?不应该是

类谢谢您的建议。没有解决问题。抱歉,Izuro完全正确。但我仍然想知道为什么这不是早期的问题。您是否在eclipse中清理了不工作的项目?不应该是
类谢谢您的建议。没有解决问题。对不起,Izuro是完全正确的。但我仍然想知道为什么这不是早些时候的问题。