オブジェクトitem 04の作成と破壊
インスタンス化を阻止するにはprivateジェネレータを使用します。
静的メソッドと静的フィールドのみを含むクラスを作成した場合、抽象クラスとして作成してもインスタンス化を阻止することはできません.
-->サブクラスを作成してインスタンス化するだけです.そのため、継承して使う意味と誤解される可能性があります.
また、ジェネレータを作成しない場合、コンパイラはデフォルトのジェネレータ(パラメータのない共通ジェネレータ)を自動的に作成するので、インスタンスを作成できます.
解決策
プライベートジェネレータを明示的に作成します.public class UtilityClass {
// 기본 생성자가 만들어지는 것을 막는다(인스턴스화 방지용).
private UtilityClass() {
throw new AssertionError();
}
// 나머지 코드는 생략
}
AssertionErrorを投げ出す必要はありませんが、クラスでジェネレータを誤って呼び出すと、プライベートジェネレータであるため継承を阻止するエラーが発生する可能性があります.
ジェネレータが提供されているが、使用できないため、直感的ではありません.したがって,最も前のコードのように,適切な注釈を加える.
継承の場合、明示的であれ暗黙的であれ、親クラスのジェネレータを呼び出す必要がありますが、呼び出しはプライベートでブロックされます.
Reference
この問題について(オブジェクトitem 04の作成と破壊), 我々は、より多くの情報をここで見つけました
https://velog.io/@pkjeogus/객체-생성과-파괴-item04
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
public class UtilityClass {
// 기본 생성자가 만들어지는 것을 막는다(인스턴스화 방지용).
private UtilityClass() {
throw new AssertionError();
}
// 나머지 코드는 생략
}
Reference
この問題について(オブジェクトitem 04の作成と破壊), 我々は、より多くの情報をここで見つけました https://velog.io/@pkjeogus/객체-생성과-파괴-item04テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol