在java中,当您没有显式指定构造函数时,会生成 no-args构造函数,并且当您编写构造函数(带参数)时,您现在需要明确指定< strong> no-args构造函数。
在groovy中,你还需要在编写自己的构造函数(带参数)时明确指定这个 no-args构造函数,否则gvm会隐式生成这个?
答案 0 :(得分:2)
在groovy中,你还需要明确指定这个 编写自己的构造函数时使用no-args构造函数(带参数) )或gvm隐式生成这个?
GVM与此无任何关系。
如果定义任何接受参数的构造函数,则不会生成no-arg构造函数。如果你想要它,你需要定义它。
$ cat Demo.groovy
public class Demo {
public Demo(String s) {}
}
$ groovyc Demo.groovy
$ javap Demo
Compiled from "Demo.groovy"
public class Demo implements groovy.lang.GroovyObject {
public static transient boolean __$stMC;
public Demo(java.lang.String);
protected groovy.lang.MetaClass $getStaticMetaClass();
public groovy.lang.MetaClass getMetaClass();
public void setMetaClass(groovy.lang.MetaClass);
public java.lang.Object invokeMethod(java.lang.String, java.lang.Object);
public java.lang.Object getProperty(java.lang.String);
public void setProperty(java.lang.String, java.lang.Object);
}