草庐IT

Inheritance

全部标签

java - 自定义异常错误继承

我已经创建了扩展Exception类的自定义基础异常。后来我用另一个扩展了MyBaseException类——这次是特定的异常类。我现在对其中一个SonarQube有疑问-与“名为“Exception”的类应该扩展“Exception”或子类”规则有关。类声明看起来像这样:importorg.apache.log4j.Logger;importorg.springframework.http.HttpStatus;publicclassMyBaseExceptionextendsException{publicMyBaseException(intcode,Stringmessage)

java - 直接自引用导致循环父类(super class)问题 JSON

我尝试了一些在搜索时发现的方法,但没有任何帮助,或者我没有正确实现。我得到的错误Directself-referenceleadingtocycle(throughreferencechain:io.test.entity.bone.Special["appInstance"]->io.test.entity.platform.ApplicationInstance["appInstance"])它们都扩展了基础实体,并且在基础(父类(superclass))中它也有一个appInstance。基本实体看起来与此类似@MappedSuperclasspublicabstractclas

java - Java中类A继承类B时堆中发生了什么

在Java中假设我们有两个类A和B这样B继承AA具有三个私有(private)字段和一个具有三个参数的构造函数:publicclassA{privateinta;privateintb;privateintc;publicA(inta,intb,intc){this.a=a;this.b=b;this.c=c;}}这里是类BpublicclassBextendsA{publicB(){super(1,2,3);}}我们考虑下面的测试类publicclassTestA{publicstaticvoidmain(String[]args){Aa=newA(1,2,3);Bb=newB();

java - 如何用jpa映射抽象集合?

我正在尝试找出是否有可能让JPA持久化具有具体实现的抽象集合。到目前为止,我的代码如下所示:@EntitypublicclassReportextendsModel{@OneToMany(mappedBy="report",fetch=FetchType.EAGER)publicSetitems;}@MappedSuperclasspublicabstractclassOpsItemextendsModel{@ManyToOnepublicRetailOpsBranchreport;}@Entity@Inheritance(strategy=InheritanceType.TABLE_

java - 具有多个继承类的通用返回类型的自引用方法

这可能有点难以描述。不过,我会试试的;)遵循流畅的风格,类的方法返回类实例本身(this)是很常见的。publicclassA{publicAdoSomething(){//dosomethingherereturnthis;}}当扩展这样一个流畅的样式类时,可以在第一个继承步骤中通过泛型类型轻松完成此操作,并将返回类型转换为父类(superclass)中的此泛型类型。publicclassA>{publicTdoSomething(){//dosomethingherereturn(T)this;}}publicclassBextendsA{//anextendedclassofcl

java - 如何扩展使用 FXML 的自定义 JavaFX 组件

如果自定义JavaFX组件将FXML用于View,我该如何正确扩展它以添加或修改其GUI组件?作为示例场景,假设我使用以下方法创建自定义JavaFX组件:SpecializedButton.java(Controller)packagetest;importjava.io.IOException;importjavafx.fxml.FXML;importjavafx.fxml.FXMLLoader;importjavafx.scene.control.Button;importjavafx.scene.control.Label;importjavafx.scene.layout.HB

Java:你怎么称呼这种多重继承歧义?

这是一个在Java中使用多接口(interface)继承的示例,但存在一个问题。请注意,我完全知道为什么会出现问题,这不是我要问的重点。问题在于如何命名这种特定的多接口(interface)继承歧义(如果有名称的话)。例如,在C++中,当你使用多重实现继承而无法确定使用哪个重写方法时产生的歧义被称为“菱形继承(钻石问题)”:http://en.wikipedia.org/wiki/Diamond_problem现在再一次,我知道这不是同一个问题:这不是重点。关键是在之前的案例中已经创造了一个名称。我想知道是否存在我将要描述的问题的名称。这是另一种多重继承的示例,其中一个接口(inter

Java泛型和继承

我有以下抽象类:publicabstractclassAbSuperClass1{//classdefinition}和:publicabstractclassAbSuperClass2{publicabstract>voidmethod(Qarg);...}然后我有两个具体的实现publicclassConcrete1extendsAbSuperClass{//classdefinition}和:publicclassConcrete2extendsAbSuperClass2{publicvoidmethod(Concrete1arg){//methoddefinition}}然而,

java - 继承、组合和默认方法

通常承认通过继承扩展接口(interface)的实现不是最佳实践,并且组合(例如,从头开始重新实现接口(interface))更易于维护。这是可行的,因为接口(interface)契约强制用户实现所有需要的功能。但是在Java8中,默认方法提供了一些可以“手动”覆盖的默认行为。考虑以下示例:我想设计一个用户数据库,它必须具有列表的功能。为了提高效率,我选择用ArrayList来支持它。publicclassUserDatabaseextendsArrayList{}这通常不会被认为是很好的实践,如果真的想要List的全部功能并遵循通常的“组合优于继承”的座右铭,人们会更喜欢:publi

java - 为什么在类级别不允许泛型中的 super 关键字

在泛型中classA允许但是classA不允许我不明白这一点。这听起来像是新手问题,但我深陷其中 最佳答案 引用JavaGenerics:extends,superandwildcardsexplained:Thesuperboundisnotallowedinclassdefinition.//thiscodedoesnotcompile!classForbidden{}Why?Becausesuchconstructiondoesn'tmakesense.Forexample,youcan'terasethetypeparame