[解決済み] Java enum クラスはデフォルト値を設定できますか?
2022-02-08 23:40:16
質問
マイコードは
public enum PartsOfSpeech2 {
n("noun"),
wp("标点"),
a("adjective"),
d("conjunction"),
...;
というのは
public enum PartsOfSpeech2 {
n("noun"),
wp("标点"),
a("adjective"),
d("conjunction"),
%("noun");
デフォルト値がない場合、デフォルト値として設定できますか? というのも、型が "%" で、enum は % をサポートしていないので、それを解決するためにデフォルト値が欲しいのです。
どのように解決するのですか?
への参照を保持する人のためのデフォルトは、(1) です。
enum
値を設定しない場合は
null
(クラスフィールドの場合は自動的に、またはユーザーが明示的に設定します)。
残念ながら、このメソッドをオーバーライドすることはできません。
valueOf
を自分の
enum
は、そのまま
static
.
しかし、まだメソッドを作成することができます。
public enum PartsOfSpeech2 {
n("noun"),
wp("标点"),
a("adjective"),
d("conjunction");
private String value;
PartsOfSpeech2(String value) {
this.value = value;
}
// declare your defaults with constant values
private final static PartsOfSpeech2 defaultValue = n;
private final static String defaultString = "%";
// `of` as a substitute for `valueOf` handling the default value
public static PartsOfSpeech2 of(String value) {
if(value.equals(defaultString)) return defaultValue;
return PartsOfSpeech2.valueOf(value);
}
// `defaultOr` for handling default value for null
public static PartsOfSpeech2 defaultOr(PartsOfSpeech2 value) {
return value != null ? value : defaultValue;
}
@Override
public String toString() { return value; }
}
関連
-
[解決済み】javaで指定されたファイルが見つからない
-
[解決済み] Java enumのメンバーを比較する:==またはequals()?
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] C#でenumからint値を取得する
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み】TをEnumに拘束するGenericメソッドの作成
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Javaパッケージが存在しないエラー
-
[解決済み】このコンパイルユニットは名前付きモジュールに関連しているため、名前付きパッケージeclipseを宣言する必要があります。
-
[解決済み】"実引数リストと形式引数リストの長さが異なる"
-
[解決済み】Java、"変数名 "を変数に解決することができない
-
[解決済み】ResultSetの例外 - 結果セットの開始前
-
[解決済み】Javaの部分文字列:「文字列のインデックスが範囲外」。
-
[解決済み】なぜjava.io.Fileにはcloseメソッドがないのでしょうか?
-
[解決済み] Hide Utility Class Constructor : ユーティリティクラスはパブリックまたはデフォルトコンストラクタを持つべきではありません。
-
[解決済み】javaで無効な文字定数
-
[解決済み】接続Java - MySQL : 公開鍵の取得は許可されていません。