草庐IT

Constructor

全部标签

constructor - Swift - 使构造函数参数上的标签可选?

例如,假设您有以下代码:structSomeStruct{init(arg1:String,arg2:Int){//DoesStuffwithVariables}}//SomePointLatervarstr="fasfsad"varinteger=343letsmth=SomeStruct(arg1:str,arg2:integer)是否可以修改SomeStruct结构以使以下代码行合法?letsmth=SomeStruct(str,integer) 最佳答案 是的,您可以通过对外部参数名称使用下划线来使参数匿名:structSo

java - 双括号初始值设定项和数组

这个问题在这里已经有了答案:Arrayinitializationsyntaxwhennotinadeclaration(4个答案)关闭7年前。我有一个具有数组参数的方法,例如:publicstaticvoidfoo(int[]param){//Somecode}而且我也可以通过这样写来调用方法foo(newint[3]);通常,我们通过new运算符或双括号初始化器(如{1,2,3})来声明和初始化数组。例如,int[]foo=newint[3];或int[]foo={1,2,3};。但是不可能使用双括号初始化器作为方法的参数。{}仅可用于创建数组对象。我的问题是:newoperato

java - 在重载的构造函数中重用代码

我的BigBlock类需要一些重载的构造函数。他们都需要以相同的方式初始化相同的几个字段。执行此操作的正确方法是什么?是做一个功能,例如Initialize在下面的示例中,它执行这些操作,并让所有构造函数调用该函数?publicclassBigBlock{privateThingparentThing;UnitslengthUnit;LabCoordinateSystemlabCoordinateSystem;privatevoidInitialize(){lengthUnit=parentThing.getPreferredUnits(0);labCoordinateSystem=p

java - Java 中的继承 - "Cannot find symbol constructor"

我正在处理一个继承自另一个类的类,但我收到一个编译器错误,提示“找不到符号构造函数Account()”。基本上我想做的是制作一个InvestmentAccount类,它从Account扩展-Account旨在通过提取/存入资金的方法保持余额,InvestmentAccount是相似的,但余额存储在股票中,股价决定如何给定一定数额的钱,可以存入或提取许多股票。这是子类InvestmentAccount的前几行(编译器指出问题的地方):publicclassInvestmentAccountextendsAccount{protectedintsharePrice;protectedint

Java Pattern 类没有公共(public)构造函数,为什么?

我一直在审查JavaRegex库,令我惊讶的是Pattern类没有我多年来认为理所当然的公共(public)构造函数。我怀疑静态compile方法被用于支持构造函数的一个原因可能是构造函数总是返回一个新对象,而静态方法可能返回一个先前创建的(和缓存的)提供的对象模式字符串是相同的。然而,事实并非如此,如下所示。publicclassPatternCompiler{publicstaticvoidmain(String[]args){Patternfirst=Pattern.compile(".");Patternsecond=Pattern.compile(".");if(first=

java "void"和 "non void"构造函数

我用java编写了这个简单的类,只是为了测试它的一些功能。publicclassclass1{publicstaticIntegervalue=0;publicclass1(){da();}publicintda(){class1.value=class1.value+1;return5;}publicstaticvoidmain(String[]args){class1h=newclass1();class1h2=newclass1();System.out.println(class1.value);}}输出是:2但是在这段代码中:publicclassclass1{publics

java - 我们可以为 Java 中的构造函数提供返回类型吗?

以下代码给出编译错误:classparent{parent(inta){}}classchildextendsparent{}错误:Main.java:6:cannotfindsymbolsymbol:constructorparent()location:classparentclasschildextendsparent{}^1error我尝试做不同的事情,发现向父构造函数添加返回类型可以消除错误!!!classparent{intparent(inta){}}classchildextendsparent{}我读到构造函数不应该有返回类型,这显然不是一直都是正确的。所以我的问题是

Java lambda (JSR 335) : Why "eliminate support for unbound inner class constructor references"?

在currentJSR335draft,它在更改日志中提到entryfor0.6.0它“消除了对未绑定(bind)内部类构造函数引用的支持”。为了说明,假设您有一个名为A的外部类和一​​个名为B的内部类,并且您想要一个接受A的函数>并创建一个新的B实例:Functionfoo=a->a.newB();在0.6.0之前,您还可以使用构造函数引用语法来做同样的事情(它甚至记录在StateoftheLambda中):Functionfoo=A.B::new;如上所述,0.6.0不再支持该语法。我真的很想知道为什么。我查看了lambda-spec-experts的文件和lambda-dev邮件

java - 类中 getConstructors() 中的通用类型

在通用类中Class方法getConstructors()具有未知泛型类型参数的返回类型而不是T.原因在javadoc中有解释。NotethatwhilethismethodreturnsanarrayofConstructorobjects(thatisanarrayofconstructorsfromthisclass),thereturntypeofthismethodisConstructor[]andnotConstructor[]asmightbeexpected.Thislessinformativereturntypeisnecessarysinceafterbeing

java - 在现场实例化和在构造函数中实例化有什么区别?

这样做有什么区别:publicclassSomeClass{SomeObjectobj=newSomeObject();//restofthecode}还有这个publicclassSomeClass{SomeObjectobj;publicSomeClass(){obj=newSomeObject();}//restofthecode} 最佳答案 根据章节12.5CreationofNewClassInstancesJava语言规范:Justbeforeareferencetothenewlycreatedobjectisretu