現在、すべての静的フィールドを次のように宣言しています。
public static final int EXAMPLE_OF_STATIC_FIELD = 0;
クラス内で発生する可能性のあるすべてのエラーを表すフィールドを持つ基本クラスがあるとします。
public class Base {
public static final int ERROR_1 = 0;
public static final int ERROR_2 = 1;
public static final int ERROR_3 = 2;
}
この基本クラスを拡張Error types
し、クラスにさらに追加したい場合は、次のようにします。
public class OffSpring extends Base {
public static final int NEW_ERROR_1 = 3;
}
new を宣言するには、基本クラスのfromの値Error types
を知る必要がありますError types
。これは (私の意見では) あまり便利ではありません。 . 例えば:Error Type
Base class
Error type
Base class
public static final int NEW_ERROR_1 = 0;
これはと同じです
public static final int ERROR_1 = 0;
これは競合します...
を使用することを考えEnum Class
ましたが、拡張できないことがわかりました。
列挙型をサブクラス化して新しい要素を追加できますか?
別のオプションは、すべての静的フィールドに int 値タイプの代わりに String 値タイプを使用することですが、これはあまり効率的な解決策ではありません...
スーパークラスと競合することなく、クラスの子孫にフィールドを追加するにはどうすればよいですか?