Java 列挙型はアノテーションとどのように連携しますか?

王林
リリース: 2024-05-04 21:54:02
オリジナル
967 人が閲覧しました

はい、列挙型と注釈を組み合わせて使用​​すると、名前や 16 進コードなどの列挙型定数に関する追加情報を指定し、検証ルールや構成情報を提供する注釈を使用することで、強力なソリューションを作成できます。たとえば、@ValidColor アノテーションを使用すると、Product クラスの color フィールドには RED、GREEN、BLUE のいずれかの値のみが含まれるようになります。

Java 枚举类型如何与注解配合使用?

Java 列挙型と注釈の完璧な組み合わせ

列挙型と注釈は、Java プログラミングにおける 2 つの最も強力な要素です。言語機能を組み合わせて使用​​すると、強力で柔軟なソリューションを作成できます。この記事では、注釈付きの列挙型を使用する方法を検討し、その利点を示す実践的な例を提供します。

列挙型

列挙型は、既知の定数のセットを表す特別な Java クラスです。列挙型の各定数は値に対応しており、変更することはできません。

たとえば、次のコードは、3 つの色を含む Color という名前の列挙型を定義します。注釈は、Java 要素 (クラス、メソッド、フィールドなど) に添付して、要素に関する追加情報を提供できるメタデータの一種です。注釈は、次のようなさまざまな目的に使用できます。

プログラマの意図を記録する

検証ルールを指定する

構成情報を提供する
  • 列挙型と注釈の併用
  • 列挙型と注釈を組み合わせて使用​​すると、強力なソリューションを作成できます。たとえば、次の例に示すように、注釈を使用して特定の列挙定数に関する追加情報を指定できます。
public enum Color {
    RED,
    GREEN,
    BLUE
}
ログイン後にコピー

この例では、@MyAnnotation 注釈を使用して各色を指定します。 enumeration 定数の名前と 16 進コードを指定します。

実際的なケース

注釈付きの列挙型を使用する方法を示す実際的なケースを考えてみましょう。

RED

GREEN

BLUE

のいずれかの色フィールドを持つ Product クラスがあるとします。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:java;toolbar:false;'>public enum Color { @MyAnnotation(name = &quot;Red&quot;, hex = &quot;#FF0000&quot;) RED, @MyAnnotation(name = &quot;Green&quot;, hex = &quot;#00FF00&quot;) GREEN, @MyAnnotation(name = &quot;Blue&quot;, hex = &quot;#0000FF&quot;) BLUE } @interface MyAnnotation { String name(); String hex(); }</pre><div class="contentsignin">ログイン後にコピー</div></div>color フィールドに RED

GREEN

、または BLUE から 1 つの値のみを含めることができるようにするには、以下に示すように、@ValidColor アノテーションを使用してフィールド値を検証できます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:java;toolbar:false;'>public class Product { private Color color; // ... 其他代码 }</pre><div class="contentsignin">ログイン後にコピー</div></div> 次に、<code>PURPLE のような無効な値を に割り当てようとします。 color フィールドでは、@ValidColor

注釈は無効な値が保存されるのを防ぐために例外をスローします。 結論列挙型と注釈は、Java プログラミングにおいて非常に強力で柔軟です。これらを組み合わせて使用​​すると、堅牢で保守性が高く、スケーラブルなアプリケーションを作成するのに役立ちます。

以上がJava 列挙型はアノテーションとどのように連携しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート