class ABC {
private int[] variable;
public int[] getVariable() {
return variable;
}
public ABC() {
variable = new int[123456];
}
}
class DEF extends ABC {
public int[] getVariable() {
return new int[0];
}
}
variable
中古ですABC
が完全未使用で不要ですDEF
。DEF
しかし、常にスーパークラスのコンストラクターを実行する必要があるため、この大きな配列の作成を防ぐ適切な方法がわかりません。ABC の新しい「偽の」コンストラクターです。
protected ABC(boolean whatever) {}
次に、次のDEF
ように記述できます。
public DEF() {
super(true);
}
そしてそれは動作します -初期化されvariable
ていません。
しかし、私の質問は、これをもっと適切に解決できますか?
おそらく、変数が使用されていない場合、コンパイラは自動的に変数を削除しますか? そのような機能が役立つ場合がよくあります。