当前位置: 首页 > 知识库问答 >
问题:

Java多级泛型继承[duplicate]

融宏伟
2023-03-14

我发现的最接近的问题(方法链接:在多级继承的情况下如何使用getThis()技巧)并没有直接回答我的问题。我目前正在使用morphia,正在建立一个rest服务。我已经看过很多版本如何实现这一点,并决定这样做。我完全愿意接受建议,但是,学习如何解决这个问题,将有助于我的编码实践,至少我认为会。此外,我知道我的命名约定可能会被取消,所以我也愿意接受这样的更正:)

这是我的代码:

                          1st
/*****************************************************************************/
public interface BaseRepository <T extends BaseEntity> {
    /* Methods Here */
}
public class BaseController<T extends BaseEntity> implements BaseRepository<T> {
    public BaseController(Class<T> type) {
         this.type = type;
    }
    /* Overridden Methods Here*/
}
                         2nd
/*****************************************************************************/
public interface UserRepository<T extends UserEntity> extends BaseRepository<UserEntity> {

    /* Methods Here */

}

public class UserController<T extends UserEntity> extends BaseController<UserEntity> implements UserRepository<T> {

    Class<T> type;

    public UserController(Class<T> type) {
        super(type); // <---- Error Here
        this.type = type;
    }

最终,我希望有一个学生控制器,工作人员控制器等。从用户控制器继承。BaseController将是其他控制器(而不是用户)的父级。然而,我不知道该怎么做。我确实试着去满足

public UserController(Class<T> type) {
        super(type); // <---- Error Here
        this.type = type;
    }

将超级(type)中的type替换为UserEntity.class,但这只允许Bascontroller返回UserEntity属性。有什么解决办法吗?如果有办法...就像我说的,我还在学习,我完全愿意接受处理这个问题的其他建议或这个特定问题的任何建议。非常感谢!谢谢:)

共有1个答案

骆昊阳
2023-03-14

我想你的意图是

public class UserController<T extends UserEntity> extends BaseController<T> 
                                                  implements UserRepository<T> {

因为这将允许你通过

 类似资料:
  • 问题内容: 我有一个(对我而言)复杂的Java泛型问题。我通读了一些文档,并了解了一些,但不是全部。基本上,对我来说,尝试解决它会导致尝试和错误。 在下文中,我给出了代码的精简示例,一次没有任何泛型(这样一个人就可以希望理解我想要实现的目标),而另一个则有一些更接近解决方案的补充。请更正我的第二个版本和/或指向特定的文档。(我有Java泛型的常规文档。但是我的代码似乎遇到了一些干扰性的挑战,因此很

  • 和这个问题相关的课程: 现在,这似乎已被编译器接受。不幸的是,我不知道/理解如何创建的新实例,。 当然,这确实不起作用:

  • 问题内容: 我有三节课: 现在在我的主要职能中,我做这样的事情: 但这会产生2个编译时错误: 无法将A转换为fileHandler 无法将B转换为fileHandler 如果基类不是泛型的,那么我如何摆脱这些错误呢? 更新: 我的班级层次结构是: 调用函数的C类或 调用函数的D类。 C和D都从抽象类E派生。 现在,我应该如何在C和D以及E中定义这些功能: 我给出了以下内容: E: C: D: C,

  • 问题内容: 为了完全理解如何解决Java的多重继承问题,我有一个经典的问题需要澄清。 可以说我有类此有子类和我需要做一个类,从扩展和自既是一只鸟和一匹马。 我认为这是经典的钻石问题。从我能理解经典的方式来解决,这是使,和类接口,并实现从他们。 我想知道是否还有另一种方法可以解决仍然可以为鸟和马创建对象的问题。如果有一种能够创造动物的方法,那也很棒,但不是必须的。 问题答案: 你可以为动物类(生物学

  • 假设我有类,它有子类和,我需要创建一个类,它扩展自和,因为既是鸟也是马。 我想这就是经典的钻石问题。据我所知,解决这个问题的经典方法是将、和类作为接口,并从它们实现。 我想知道是否有另一种方法来解决这个问题,在这个方法中,我仍然可以为鸟和马创建对象。如果有一种方法也能创造动物,那将是伟大的,但不是必要的。

  • 我在抽象课上有以下内容... 还有另一个类,它继承了这个类... 当我从主类执行以下调用时,我收到一个错误... 我的问题是..为什么会发生这种情况?我的getEntityById不是返回T型的东西,在这种情况下应该是产品吗? 我在 Netbeans 中工作,编译时未显示任何错误。 感谢您的帮助=)