草庐IT

CONSTRUCTOR

全部标签

java - 调用 super 构造函数时引用 "this"?

我有一个类A并编写了一个子类B。A只有一个参数化的构造函数。B必须调用A的super构造函数。现在我想使用一个对象作为参数。这个对象应该调用B的方法。所以参数对象必须持有B的引用或者必须是内部类。publicB(){super.(newparameter(this))}现在当我想调用构造函数时...Eclipse说:Cannotreferto'this'nor'super'whileexplicitlyinvokingaconstructor我看到的唯一解决这个问题的方法是设置方法,将“this”实例注入(inject)参数对象。我不想编辑父类(superclass)。你有没有更好的办

java - 如何解决 'Implicit super constructor classA() is not visible. Must explicitly invoke another constructor' ?

我有一个类“ClassA”,它有私有(private)构造函数。publicfinalclassClassA{privateClassA{}publicstaticvoidmain(String[]arg)}{;;;}}现在,我正在扩展“ClassA”类[final关键字在执行此操作之前被删除]publicclassClassBextendsClassA{publicstaticvoidmain(String[]arg)}{;;;}}现在,我得到IplicitsuperconstructorclassA()isnotvisible。必须显式调用另一个构造函数。这是什么意思,如何解决?注

java - 在构造函数重载的情况下如何同时调用 super(...) 和 this(...)?

我以前从来不需要这样做,但由于两者都必须是构造函数中的“第一”行,应该如何处理呢?对于这种情况,最好的重构是什么?这是一个示例:publicclassAgreementextendsPostable{publicAgreement(Useruser,DatadataCovered){super(user);this(user,dataCovered,null);}publicAgreement(Useruser,DatadataCovered,Priceprice){super(user);if(price!=null)this.price=price;this.dataCovered

java - Akka Java : create an actor with constructor taking parameters

我如何在java中创建一个带有自定义构造函数的actor?我已经搜索了文档,但没有找到它。这是我的Actor:publicclassResizePhotoActorextendsUntypedActor{privateintwidth;privateintheight;privateStringcaption;publicResizePhotoActor(intwidth,intheight,Stringcaption){this.height=height;this.width=width;this.caption=caption;}publicvoidonReceive(Objec

java - 为什么在调用构造函数时将 int 隐式转换为 float 而不是 double?

我写了这段测试代码publicclassConstructorTestApplication{privatestaticStringresult;publicstaticvoidmain(String[]args){ConstructorTesttest1=newConstructorTest(0);System.out.println(result);}privatestaticclassConstructorTest{publicConstructorTest(doubleparam){result="doubleconstructorcalled!";}publicConstru

java - PowerMock 的 expectNew() 没有像预期的那样模拟构造函数

我正在尝试了解各种模拟库的来龙去脉和PowerMock(特别是EasyMock扩展)是列表中的下一个。我试图模拟一个构造函数,当我尝试复制它们时,所提供的示例没有相同的响应。据我所知,它从不模拟构造函数,只是像正常情况一样继续进行。这是测试类:@RunWith(PowerMockRunner.class)@PrepareForTest({Writer.class})publicclassFaultInjectionSituationTest{@TestpublicvoidtestActionFail()throwsException{FaultInjectionSituationfis

Java继承——构造函数

在为我的期末学习做准备时,我在我目前正在学习的书中看到了以下陈述。考虑以下代码:classA{publicA(intx){}}classBextendsA{publicB(intx){}}B类的构造函数中是否必须调用A类的构造函数(super(x))。该书指出这不是强制性的,因为它们具有确切的参数数量和类型。但是当我在java编译器中尝试这个时,会抛出以下错误:constructorAinclassAcannotbeappliedtogiventypes;required:intfound:noargumentsreason:actualandformalargumentlistsdi

java - 创建单个对象时如何执行多个构造函数

这个问题在这里已经有了答案:HowdoIcalloneconstructorfromanotherinJava?(22个答案)关闭9年前。我想在创建单个对象时执行多个构造函数。例如,我有一个这样的类定义-publicclassPrg{publicPrg(){System.out.println("Indefaultconstructor");}publicPrg(inta){System.out.println("Insingleparameterconstructor");}publicPrg(intb,intc){System.out.println("Inmultiplepara

java - 抽象类的复制构造函数

我有一个名为AClass的抽象类。在同一个包中,我有AnotherClass,其中我有一个AClass对象的ArrayList。在AnotherClass的复制构造函数中,我需要在ArrayList中复制AClass对象。问题:我无法在AClass中创建复制构造函数,因为它是一个抽象类,而且我不知道将由AClass继承的类的名称。实际上,在这个项目中,没有对象会继承这个类,但这个项目将被其他项目用作库,这些项目将提供AClass的子类。是我的设计有问题还是有解决办法?编辑:这里是一些代码:publicclassAnotherClass{privateArrayListlist;.../

java - 私有(private)内部类的构造函数应该声明为公共(public)的还是私有(private)的?

这之间有什么实际区别吗publicclassOuterClass{privateclassInnerClass{publicInnerClass(){}}}还有这个?publicclassOuterClass{privateclassInnerClass{privateInnerClass(){}}} 最佳答案 从另一个类访问私有(private)成员稍微复杂一些,因为JVM实际上不允许这样做。因此,编译器会注入(inject)访问器方法,这会使它稍微变慢或使您的堆栈跟踪更加复杂。出于这些原因,我将其保留为本地包。顺便说一句,抽象类