草庐IT

java - 具有空值的字符串构造函数

为什么带有空值的String(String)构造函数会导致编译时错误?我认为有2+个构造函数接受Object并在初始化时使用。它与null它不知道从哪个开始。我想知道是否还有其他原因Strings=newString(null);//compiletimeerrorStringBuffersb=newStringBuffer(null);//noerror 最佳答案 通常,当您调用可能适用多个覆盖版本的构造函数或方法时,Java会选择最具体的构造函数或方法。Section15.12.2Java语言规范的详细解释。假设您有两个重载方法

java - 构造函数重载示例中的混淆

下面的程序输出为IamParameterizedCtora=0b=0publicclassParameterizedCtor{privateinta;privateintb;publicParameterizedCtor(){System.out.println("IamdefaultCtor");a=1;b=1;}publicParameterizedCtor(inta,intb){System.out.println("IamParameterizedCtor");a=a;b=b;}publicvoidprint(){System.out.println("a="+a);Syste

java - 了解选择哪个构造函数以及为什么

为什么下面的程序每次都打印I'mstring而不是I'mobject.或I'mint.?publicclassDemo{publicDemo(Strings){System.out.println("I'mstring");}publicDemo(inti){System.out.println("I'mint.");}publicDemo(Objecto){System.out.println("I'mobject.");}publicstaticvoidmain(String[]args){newDemo(null);}}另外,如果我替换int与Integer.它给出错误Theco

java - 如何避免制作冗长的构造函数

这个问题在这里已经有了答案:Elegantalternativesforhugeamountofargumentsinclassconstructor[closed](4个答案)关闭7年前。我有一个客户端库,我在其中对我的其余服务进行http远程调用,然后返回List返回调用我们图书馆的客户,返回我从我的REST服务得到的响应以及任何错误,如果有任何环绕DataResponse对象。publicclassDataResponse{privatefinalStringresponse;privatefinalbooleanisLink;privatefinalTypeOfIdidType

java - 为什么 TreeSet<E> 的构造函数接受 E 的参数 super 而不是 E 的 extend

我正在阅读java源代码,发现如下内容:http://www.java2s.com/Code/JavaAPI/java.util/newTreeSetEComparatorsuperEc.htm不明白为什么这个构造函数的参数是.我的理解应该是而不是因为如果E是可比较的,则E的child必须是可比较的,而E的parent可能不是。 最佳答案 让我们考虑三个类:Drink,JuiceextendsDrink,和OrangeJuiceextendsJuice.如果我想要一个TreeSet,我需要一个比较器来比较任何两种果汁。当然是Comp

java - 如何解释构造函数中的 return 语句?

据我所知,构造函数不返回任何内容,甚至不返回void还有return;在任何方法中都意味着返回void。所以在我的程序中publicclassreturnTest{publicstaticvoidmain(String[]args){returnTestobj=newreturnTest();System.out.println("here1");}publicreturnTest(){System.out.println("here2");return;}}我在打电话return;这将返回VOID,但构造函数不应该返回任何东西,程序编译得很好。请解释。 最

Java:构造函数中抛出异常,我的对象仍然可以创建吗?

你能告诉我在构造函数中抛出异常并且对象不为null时的某些情况吗?我的意思是对象的某些部分已创建,而另一部分未创建。像这样publicTest(){name="John";//exception//initsomeotherdata.}我知道在这种情况下对象Test将为空,但对象测试不能为空的情况(删除异常block不回答:))? 最佳答案 如果其限定符和参数的计算正常完成,并且如果有足够的空间来创建对象,则类实例创建表达式总是创建一个新对象。构造函数是否抛出异常无关紧要;仍然创建了一个对象。但是,在这种情况下,类实例创建表达式不会

java - 为什么在同一个类中有构造函数和 main 方法

为什么您需要在您的类中有一个包含publicstaticvoidmain(String[]args){}的构造函数?为什么不用一个带有构造函数的单独类来实例化它呢? 最佳答案 main()方法是java中任何程序的入口点。这是JVM调用以执行程序的方法。包括抽象类在内的每个类都有一个构造函数。即使您没有明确声明,编译器也会添加一个默认构造函数。main()方法必须属于某个公共(public)类(它总是有一个构造函数)。是的,通常最好设计另一个具有所有编程逻辑的类,并在主类中实例化此类,即其中包含main()方法的类。但是你也可以有一

java - Mockito:如何测试调用了构造函数?

我正在使用Mockito测试我的Java应用程序中的方法。如何测试构造函数是否被调用过一次?我正在尝试进行与此类似的验证:verify(myClass,times(1)).doSomething(anotherObject);但我无法验证是否调用了构造函数,因为它没有类似于例如doSomething(). 最佳答案 您可以使用Mockito和PowerMockito来完成。假设您有一个带有构造函数的ClassUnderTestpublicclassClassUnderTest{Stringname;booleancondition;

java - 防止从Java类中调用私有(private)构造函数

我们可以通过将其构造函数设为私有(private)来限制类对象的创建。但是仍然可以从类中调用此构造函数。在Java中有什么方法可以防止这种情况发生吗?谢谢。 最佳答案 不,没有干净的方法可以做到这一点。我真的看不出这样做的理由。因为如果构造函数是私有(private)的,这意味着他只能从这个确切类(没有子类,或包中的其他类)内的代码调用,所以如果你不想调用构造函数,请在上面加上注释这是这么说的。由于每个能够使用构造函数的人都可以删除您放置在那里以防止调用构造函数的任何措施,因此它不会产生任何实际效果。此外,如果您需要单例,那么您可能