我有一些类看起来像这样:
模型
public abstract class BaseEntity<O extends Object> { ... }
public class Person extends BaseEntity<Person> { ... }
命令
public abstract class BaseCommand<BE extends BaseEntity<BE>> { ... }
public class PersonCommand extends BaseCommand<Person> { ... }
服务
public interface BaseService<BE extends BaseEntity<BE>> {
public BE create(BaseCommand<BE> command);
}
public interface PersonService extends BaseService<Person> { ... }
服务实现
public abstract class BaseServiceImpl<BE extends BaseEntity<BE>> implements BaseService<BE> { }
public class PersonServiceImpl extends BaseServiceImpl<Person> implements PersonService {
public Person create(PersonCommand personCommand) { ... }
}
PersonServiceImpl
类无法编译。它没有识别出create()
方法是从BaseService
接口实现的。有人能告诉为什么PersonCommand
在参数列表中没有被识别为一个BaseCommand<BE>
吗?
PersonCommand
而不是BaseCommand<Person>
。(请参阅我的答案以获取更多详细信息。:-)) - C. K. Young