这些是我的类定义:
public interface Entity ...
public abstract class EntityBaseClass implements Entity ...
public class ArticleCategory extends EntityBaseClass ...
还有
public interface GenericService<T extends Entity>
public interface ArticleCategoryService extends GenericService<ArticleCategory>
public class ArticleCategoryServiceImpl implements ArticleCategoryService
为什么我不能做这样的事情:
GenericService<Entity> x = new ArticleCategoryServiceImpl();
?
最佳答案
因为ArticleCategoryServiceImpl
实现ArticleCategoryService
延伸GenericService<ArticleCategory>
这与 GenericService<Entity>
不同.
您应该查看为多态性而实例化的对象,而不是它使用的泛型。
您可以将 x 声明为 GenericService<ArticleCategory>
尽管。哪个可能更好,因为 ArticleCategory>
可以做 Entity
一样多的事情然后是一些。
关于java - 使用泛型层次结构在 Java 中进行转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23277269/