草庐IT

java - 将一个简单的枚举传递给 Java 中的构造函数

我正在努力学习Java。我想在构造函数中有一个枚举作为参数。但是我收到一个错误。publicclassPerson{privateintage,weight,height;privateStringname;privateenumgender{MALE,FEMALE}publicPerson(intage,intweight,intheight,Stringname,enumgender){this.age=age;this.weight=weight;this.height=height;this.name=name;this.gender=gender;}}我将如何处理性别问题?我

java - 为什么在ArrayList的构造中需要将类型转换为Object数组?

publicArrayList(Collectionc){elementData=c.toArray();size=elementData.length;//c.toArraymight(incorrectly)notreturnObject[](see6260652)if(elementData.getClass()!=Object[].class)elementData=Arrays.copyOf(elementData,size,Object[].class);}这段代码是java.util.ArrayList的构造。您可以在此处查看错误6260652的详细信息http://bu

java - 如何 'getConstructor',其中构造函数签名包含java数组

是否可以使用getConstructor获取下面类X的构造函数?publicclassA{}publicclassY{}publicclassXextendsY{publicX(Aa,Y[]yy){}publicvoidsomeMethod()throwsSecurityException,NoSuchMethodException{Classclazz=X.class;Constructorc=clazz.getConstructor(newClass[]{A.class,/*whatdoIputinhereforthearrayofYs?*/});}}谢谢

java - Mockito - 模拟遗留类构造函数

我正在为一个通过构造函数引用遗留类的类编写JUnit。遗留类在第三方jar中,所以我无法重构它以使生活更轻松....这是被测试的类...publicMyClass{publicStringmethodToTest(Stringparam){LegacyClasslegacy=newLegacyClass(param);*.....etc........*}}这就是我在mockitoJUnit中尝试做的事情。publicMyClassTest{@TestpublicvoidtestMethodToTest()throwsException{LegacyClasslegacyMock=mo

java - 克隆方法可以使用构造函数创建对象吗

我一直认为clone()会在不调用构造函数的情况下创建一个对象。但是,在阅读EffectiveJavaItem11:Overrideclonejudiciously时,我发现了这样的声明Theprovisionthat“noconstructorsarecalled”istoostrong.Awell-behavedclonemethodcancallconstructorstocreateobjectsinternaltothecloneunderconstruction.Iftheclassisfinal,clonecanevenreturnanobjectcreatedbyaco

java - 过去关于构造函数的 Java 考试

我正在参加过去的Java考试,但有一个问题一直困扰着我。问题是:“任何构造函数显式或自动调用其父类的构造函数,父类调用其父类,依此类推类层次结构。这个过程的名称是什么?感谢您的回答! 最佳答案 这叫做“构造函数链”@编辑:添加来源:Oracle'sdocumentation.由OliCharlesworth提供。Ifasubclassconstructorinvokesaconstructorofitssuperclass,eitherexplicitlyorimplicitly,youmightthinkthattherewill

java - 在 Java 中,什么时候执行构造函数中的最后一个 block ?

例如:/***Constructor*/publicTest(InputStreamin){try{this.inputStream=in;}finally{inputStream.close();}}在创建Test对象后是否立即关闭传递给指导者的InputStream?还是在Test对象被销毁时关闭?我不知道如何在C++中实现类似于析构函数的东西。 最佳答案 它作为构造函数的一部分执行。在构造函数中执行的代码只是普通代码——那里没有奇怪的控制流。(我的意思是在调用父类(superclass)构造函数并运行变量/实例初始化器之后。)

java - 在子对象中复制构造函数但在父对象中不复制

我有以下两个类:publicclassUser{publicIntegeruserId;//...another50-60fields}publicclassSuperUserextendsUser{}我想在SuperUser中有一个构造函数,它接受一个User类型的对象并创建一个SuperUser类型的对象。例如:publicSuperUser(UsertheUser){//notlegal->butIamlookingforaone-linertoinitializethiswithvaluesfromtheUserthis=theUser;}如果User对象缺少构造函数User(

java - 在构造函数中使用对可重写方法的引用是否安全?

这个问题在这里已经有了答案:What'swrongwithoverridablemethodcallsinconstructors?(8个答案)关闭8年前。当我使用在构造函数中调用可覆盖方法的lambda添加事件监听器时,我收到警告。如果我使用方法引用,我不会收到任何关于可覆盖方法或泄漏此方法的警告。我应该避免在构造函数中引用方法还是安全的?这是一个简单的例子:publicclassSomeClass{publicSomeClass(SomeObjobj){obj.addListener(this::handleEvent);//nowarnings,isitreallysafe?ob

java - 为什么基类(不实现 Serializable)如果它的子类实现了 Serializable,就应该没有参数构造函数?

我正在阅读接口(interface)Serializable的文档,我在其中找到以下几行:Toallowsubtypesofnon-serializableclassestobeserialized,thesubtypemayassumeresponsibilityforsavingandrestoringthestateofthesupertype'spublic,protected,and(ifaccessible)packagefields.Thesubtypemayassumethisresponsibilityonlyiftheclassitextendshasanacces