带有通配符的Java泛型类型会导致错误,但仅在Eclipse4.7.0中出现
我使用的是java版本1.8.0_121。我遇到的问题出现在Eclipse4.7.0中,而不是Eclipse4.6.3中。这个问题更多的是关于找出差异的原因以及是否确实存在错误,而不是修复代码。从gradle编译时没有错误 我有以下界面:带有通配符的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
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是完全正确的。但我仍然想知道为什么这不是早些时候的问题。