草庐IT

java - 关于Java类构造函数的问题

谁能告诉我这是什么意思?我正在阅读Java书籍,并且遇到了这个示例:publicclassMessage{Message(){}publicMessage(Stringtext){this.text=text;}Message(){}是什么意思? 最佳答案 它是一个不带参数的包私有(private)空构造函数。您可以使用它从同一包中的任何代码创建一个新的Message实例,方法是使用newMessage();。值得注意的是,它不会初始化text字段,因此该字段将保留默认的null值。 关

java - 构造函数是如何执行的?

我正在对讲座幻灯片进行一些修改,它说构造函数按以下方式执行:如果构造函数以此开头,则递归执行指示的构造函数,然后转到第4步。调用显式或隐式指示的父类(superclass)构造函数(除非此类是java.lang.Object)。按照在此类中声明的顺序初始化对象的字段。执行此构造函数主体的其余部分。我不明白的是,构造函数永远不能以此“开始”,因为即使它不形成类层次结构/关系,也会默认插入super()。这如何符合上面的描述? 最佳答案 构造函数(对于除java.lang.Object之外的每个类)必须以“super()”开头以调用其父

Java:当 super 构造函数需要参数时如何初始化 child

我有classA{intvar;publicA(intx){var=x;}}classBextendsA{intvar2;publicB(intx,inty){super(...);var2=y;x=f(y);}}对于子类B,我需要计算在A的构造函数中使用的值x。如果我可以自由地将super移动到我的x=f(y)然后我可以将结果传递给A(super)的构造函数。但是super必须是B的构造函数中的第一行。有什么方法可以在第一次用正确的值初始化A吗?如果A.var是最终的并且我无法在构造后返回并更改它怎么办?当然,我可以放置super(f(y)),但我可以想象这会变得困难的情况。

java:为什么不允许这个从构造函数中逃脱?

在JCIP中,第3.2.1节“安全构造函数实践”中,警告不要将this从构造函数泄漏到另一个线程,“即使发布是构造函数中的最后一条语句。“最后一部分对我来说似乎太过分了,而且没有任何理由。施工后会发生什么,我必须非常小心避免?有异常(exception)吗?我很感兴趣,因为我最近提交了一些代码,我在其中做了这件事,我想决定是否有理由回过头来重构。 最佳答案 就Java内存模型而言,constructorexit在final字段语义中起作用,因此语句在constructorexit之前还是之后是有区别的。ThisworksThisdo

java - 哪种 Camel 构造适合转换?

ApacheCamel提供了多种执行数据转换的方法:它的转换EIP概念、自定义数据格式,以及允许自定义类型转换器。我遇到一种情况,我需要从Camel路线内部进行非常复杂的转换。我应该实现自己的类型转换器、自己的数据格式,还是应该实现org.apache.camel.Expression并将所有转换内容放在那里:publicclassMyTransformerimplementsExpression{@OverridepublicTevaluate(Exchangearg0,Classarg1){//...}}我想我对何时何地使用您自己的类型转换器、何时使用.transform(myTr

java - 通过索引为 0 类型 [java.lang.Class] 的构造函数参数表达的不满足依赖关系

我使用hibernate和spring创建了一个简单的网络应用程序,我想实现一个包含crud操作的抽象类,但我有这个错误:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'clientService'definedinclasspathresource[applicationContext.xml]:Cannotresolvereferencetobean'clientDao'whilesettingbeanproperty'clientDao';nestedexcepti

类中的 java 构造函数不能应用于给定类型

我有2个子类:Staff、Student他们属于父类(superclass)Person。这是我老师给的代码(任务):publicclassPerson{privateStringname;privateintyearOfBirth;/***Createapersonwithgivennameandage.*/Person(Stringname,intyearOfBirth){this.name=name;this.yearOfBirth=yearOfBirth;}}classStudentextendsPerson{privateStringSID;//studentIDnumber

java - 谁提供了Java中的默认构造函数?编译器还是 JVM?

构造函数是在运行时添加的还是编译时添加的?(我猜是编译时)。请在JVM架构级别进行一些深入的解释。我阅读了各种文章..一些说编译器..还有一些说JVM。我想非常确定(证据会有很大帮助)。抱歉,如果这个问题很愚蠢(我还在消化术语)!!!提前致谢。 最佳答案 来自Oracle的Java教程:https://docs.oracle.com/javase/tutorial/java/javaOO/constructors.htmlYoudon'thavetoprovideanyconstructorsforyourclass,butyoum

java - java 是否支持 if-then-else 正则表达式构造(Perl 构造)?

我在尝试编译以下正则表达式时收到PatternSyntaxException:"bd".matches("(a)?b(?(1)c|d)")这个正则表达式匹配bd和abc。它与bc不匹配。有什么想法吗?谢谢。好的,我需要编写正则表达式来匹配接下来的4个字符串:*datedate*datedate1*date2不应该匹配:*date*date1*date2**date1*date2date**...但这应该通过单个匹配来完成,而不是多个。请不要发布如下答案:(date*date)|(*date)|(date*)|(date) 最佳答案

java - 从同一类中的方法调用构造函数

我是Java新手,正在学习如何创建对象类。我的一项家庭作业要求我在同一个对象类的方法中至少调用一次构造函数。我收到一条错误消息,提示ThemethodDoubleMatrix(double[][])isundefinedforthetypeDoubleMatrix这是我的构造函数:publicDoubleMatrix(double[][]tempArray){//Declarationintflag=0;intcnt;//Statement//checktoseeifdoubArrayisn'tnullandhasmorethan0rowsif(tempArray==null||tem