草庐IT

构造器

全部标签

java - 检索方法或构造函数的调用者实例(不是类)

是否可以检索方法/构造函数的调用者实例?这个问题已经发布了,但每次的答案都在谈论调用者类(使用堆栈跟踪)而不是调用者实例。如果存在解决方案,构建对象图(具有通用父类(superclass)型)并使用默认构造函数处理父子导航会非常方便。publicclassTestCallStack{publicstaticclassBaseClass{BaseClassowner;////ok,thisisthecorrectwaytodoit//publicBaseClass(BaseClassowner){//this.owner=owner;//}publicBaseClass(){//this

java - 为什么 C# 构造函数行为与 Java 不同,反之亦然?

给定这段Java代码,输出0和4:classA{A(){print();}voidprint(){System.out.println("A");}}classBextendsA{inti=Math.round(3.5f);publicstaticvoidmain(String[]args){Aa=newB();a.print();}voidprint(){System.out.println(i);}}使用相同的C#代码,输出4和4usingSystem;classA{internalA(){print();}virtualinternalvoidprint(){Console.Wr

java拷贝构造函数和继承

经过一番搜索后,我没有找到关于复制构造函数和继承的问题的任何好的答案。我有两个类(class):用户和实习生。Trainee继承自User,Trainee增加两个String参数。现在我设法制作了User的复制构造函数,但我对Trainee的复制构造函数不满意。User拷贝构造函数的代码是这样的:publicUser(Userclone){this(clone.getId(),clone.getCivilite(),clone.getNom(),clone.getPrenom(),clone.getEmail(),clone.getLogin(),clone.getTel(),clon

java - Jackson Deserializer 没有默认(无参数)构造函数

首先,我知道这个问题:CustomDeserializerhasnodefault(noarg)constructor我已经使用了推荐的解决方案,但仍然存在同样的问题。当我尝试反序列化我的json时,我仍然收到错误。我想要对我的对象进行自定义反序列化。我的单元测试如下所示:Serviceservice=newService();service.setId("ID");service.setTitle("Title");service.setDescription("Description");service.setType("Service");ObjectMappermapper=n

java - 如何模拟对象构造?

有没有办法在Java中使用JMock模拟对象构造?例如,如果我有这样的方法:publicObjectcreateObject(StringobjectType){if(objectType.equals("Integer"){returnnewInteger();}elseif(objectType.equals("String"){returnnewString();}}...有没有办法在测试方法中模拟对象构造的期望?我希望能够期望某些构造函数被调用,而不是用额外的代码来检查类型(因为它并不总是像我的示例那样复杂和简单)。所以代替:assertTrue(a.createObject(

java - 好还是坏——使用构造函数从远程 web 服务初始化模型

我想知道通过对网络服务的请求来初始化我的模型是好是坏,还是使用在构造函数之后调用的另一个公共(public)方法更好例如:classModel{ModelDatadata;Model(Integermodel_id){data=Request.getDataFromWebServices(model_id);}} 最佳答案 将类必需用作构造函数参数通常是一个很好的方法(而不是使用setter)。因此,在您的情况下,如果model_id是Model工作所必需的,那么您将它放在那里是正确的。现在您使用model_id进行远程方法调用。远

java - 构造函数重载的优点

我是Java的新手,正在尝试学习这门学科,之前只接触过HTML/CSS编程。我从HerbertSchildt开始,并浏览了几页。我无法理解构造函数重载的确切优势。为了灵active使用单个构造函数重载方法不是更容易吗?此外,如果我尝试使用构造函数重载来使用一个对象来初始化另一个对象,还有更简单的方法可以做到!那么我应该在什么情况下使用构造函数重载有什么好处。 最佳答案 构造函数重载对于模拟默认值或从现有实例构造对象(复制)非常有用这是一个例子:publicclassColor{publicintR,G,B,A;//basectrpu

java - 构造函数调用必须是构造函数中的第一条语句

这个问题在这里已经有了答案:Whydothis()andsuper()havetobethefirststatementinaconstructor?(22个答案)关闭9年前。如果我将this(1);移动到最后一行,我不明白为什么下面的代码显示错误Constructorcallmustbethefirststatementinaconstructor在构造函数中。packagelearn.basic.corejava;publicclassA{intx,y;A(){//this(1);//->>worksfineifwrittenhereSystem.out.println("1");

java - 在 Java 中总是在构造函数之后执行方法

我有一种情况,我总是需要运行一些依赖于对象本身的代码publicabstractclassA{publicA(Xx){//initAstuffx.getAList("stuff").add(this);x.getAList("otherstuff").add(this);}}publicclassBextendsA{publicB(Xx){super(x);//initBstuff}}publicclassCextendsA{publicC(Xx){super(x);//initCstuffx.getAList("otherstuff").remove(this);x.getAList

java - 为可测试性设计构造函数

我正在处理一些现有代码,试图添加到它并增加它的单元测试。但是在使代码可测试方面遇到了一些问题。原始构造函数:publicInfo()throwsException{_ServiceProperties=newServiceProperties();_SshProperties=newSshProperties();}我知道这很糟糕,而且显然不可测试。在junit环境中,这个类每次都无法创建,因为它无法找到必要的属性来构造自己。现在,我知道通过将以“new”开头的任何内容作为参数移动的简单更改,此类将更易于测试。所以我最终得到:新构造函数:publicInfo(ServiceProper