これはどういう意味ですか?
public Settings() {
this(null);
}
上記のコードは、クラス "Settings" のコンストラクターです。this(null) とはどういう意味ですか?
public Settings() {
this(null); //this is calling the next constructor
}
public Settings(Object o) {
// this one
}
これは多くの場合、デフォルト値を渡すために使用されるため、いずれかのコンストラクターを使用するかどうかを決定できます。
public Person() {
this("Name");
}
public Person(String name) {
this(name,20)
}
public Person(String name, int age) {
//...
}
これはObject
、何らかの種類の を受け取るオーバーロードされたコンストラクターを呼び出していることを意味しますが、オブジェクトを渡すのではなく、プレーンな を渡しますnull
。
同じクラスの別のコンストラクターを呼び出しているコンストラクターです。
おそらく次のようなものがあります。
public class Settings {
public Settings() {
this(null); // <-- This is calling the constructor below
}
public Settings(object someValue) {
}
}
多くの場合、このパターンは、(呼び出し元が簡単に使用できるように) より少ないパラメーターでコンストラクターを提供できるようにするために使用されますが、ロジックは 1 つの場所 (呼び出されるコンストラクター) に含まれたままにします。
Settings クラス内で別のコンストラクターを呼び出しています。単一のパラメーターを受け入れる別のコンストラクターを探します。
これは で呼び出さConstructor Chaining
れJava
ます。この呼び出しにより、クラス オブジェクトのオーバーロードされたコンストラクターを実際に呼び出します。例えば
class Employee extends Person {
public Employee() {
this("2") //Invoke Employee's overloaded constructor";
}
public Employee(String s) {
System.out.println(s);
}
}
null を引数として渡してデフォルトのコンストラクターを呼び出します...
Javaでオーバーロードされたコンストラクターを読み取ろうとすると、パラメーターが1つしかないコンストラクターを呼び出します..
.
public Settings() {
this(null);
}
public Settings(Object obj){
}