我有方法的签名如下如何将我的类传递给类的通用规范?
public abstract class AbstractFilterParametersWithSpecificationSorting<T> extends AbstractFilterParameters
...
public void registerOrderSpecification(final String key, final Class<? extends OrderSpecification<T>> spec) {
...
我传递以下
this.registerOrderSpecification(
AbstractActivityLogWithSiteUser.Index.USER_FULL_NAME,
SortActivityLogUserOrderSpecification.class);
其中有此类的定义
public class SortActivityLogUserOrderSpecification<AL extends AbstractActivityLogWithSiteUser<?>>
extends AbstractOrderSpecification<AL> implements OrderSpecification<AL>
这里就是javac
不喜欢(IDEA认为它应该可以工作,但IDEA在Java 8上运行,代码必须在Java 7上编译)
Error:(12, 21) java: method registerOrderSpecification in class com.myapp.service.principal.AbstractFilterParametersWithSpecificationSorting<T> cannot be applied to given types;
required: java.lang.String,java.lang.Class<? extends com.myapp.specification.OrderSpecification<AL>>
found: java.lang.String,java.lang.Class<com.myapp.repository.activitylog.specification.SortActivityLogUserOrderSpecification>
reason: actual argument java.lang.Class<com.myapp.repository.activitylog.specification.SortActivityLogUserOrderSpecification> cannot be converted to java.lang.Class<? extends com.myapp.specification.OrderSpecification<AL>> by method invocation conversion
我可以施放吗?或者我在某处丢失了一些问号?
猪头...名字太长。先简化他们? – ZhongYu