[解決済み] Java Enum return Int
2022-03-11 06:43:26
質問
enumの宣言に困っています。私が作成しようとしているのは、3つのダウンロードタイプ(AUDIO、VIDEO、AUDIO_AND_VIDEO)がある「DownloadType」用のenumです。
以下のようなコードを実装しました。
private enum DownloadType {
AUDIO(0), VIDEO(1), AUDIO_AND_VIDEO(2);
private final int value;
private DownloadType(int value) {
this.value = value;
}
}
これは、次のように使用するとうまくいきます。
DownloadType.AUDIO_AND_VIDEO.value;
しかし、私は「値」を求めなくてもいいようにしたいのです。私の勘違いかもしれませんが、JavaのFontのようなクラスはこのような仕組みになっています。
Font.PLAIN
これはint値を返しますが、私たちは使いません。
Font.PLAIN.value
解決方法は?
フォント.PLAIN
は
ではない
enumです。これは単なる
int
. enum から値を取り出す必要がある場合は、メソッドを呼び出すか、あるいは
.value
なぜなら、列挙型はプリミティブではなく、それ自身の型を持つオブジェクトだからです。
本当に
int
,
と
の場合、ユーザがAPIに無効な値を渡す可能性があるため、型安全性が失われることを受け入れることになります。
かもしれない
これらの定数を
int
もあります。
public final class DownloadType {
public static final int AUDIO = 0;
public static final int VIDEO = 1;
public static final int AUDIO_AND_VIDEO = 2;
// If you have only static members and want to simulate a static
// class in Java, then you can make the constructor private.
private DownloadType() {}
}
ちなみに、この
value
フィールドは冗長です。
.ordinal()
メソッドを定義することができます。
enum
としています。
enum DownloadType { AUDIO, VIDEO, AUDIO_AND_VIDEO }
を使用して、quot;value" を取得します。
DownloadType.AUDIO_AND_VIDEO.ordinal()
編集
: コードを修正しました。
static class
は、Java では許可されていません。参照
今回のSO回答
の説明と、Javaで静的クラスを定義する方法の詳細があります。
関連
-
[解決済み] Java enumのメンバーを比較する:==またはequals()?
-
[解決済み] コレクションへの共有参照が見つかりました org.hibernate.HibernateException
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] enumを列挙するには
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] C#でenumからint値を取得する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Application startメソッドで例外が発生する。JavaFx 11
-
[解決済み] 環境変数JAVA_OPTSの使い方を教えてください。
-
[解決済み] Java Swingで複数のボタンに対して複数のActionListenersを追加する方法
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] ORA-01654: インデックスを拡張できません。
-
[解決済み] タイプの安全性。アンチェック・キャスト
-
[解決済み] javaでメソッドを呼び出すプログラムのエラー修正
-
[解決済み] Maven: assembly-pluginが全く実行されない
-
[解決済み] Java: getInstanceとStaticの比較
-
[解決済み] Javaにおける静的クラス