序文
Java開発では、私たちはしばしばいくつかのint型またはString型の値を入力する必要があり、これらの値は、唯一の状態やカテゴリに代わって使用することができます。複数の入力私たちの大きなこれらの操作コードが定義された値より大きくない場合は、私たちだけの入力値にしたいが、0から5まで、このパラメータのこの値の範囲。だから我々は制限する必要があります。通常の状況下で、我々は、列挙列挙型を使用することができます。保持されているアクティビティがメモリリークが発生するためしかし、個人が頻繁にAndroidの開発を投げる、とAndroidを使用列挙型に推奨されていない、特に脆弱です。そこで、我々は限られた値の注釈スタイルの数を参照することができます。
コードセクション
モード1:
もっとこの方法を使用することをお勧めします
まず、いくつかの定数を設定するインターフェイスを作成し、我々は唯一の値このインターフェイスの定義を使用します。
パブリック インターフェイスレベル{ INT LEVEL_V = 1 。 int型 LEVEL_D = 2 ; int型 LEVEL_I = 3 ; INT LEVEL_W = 4 。 int型の LEVEL_E = 5 ; }
そして、アノテーションクラス、使用を作成@IntDef
// @Retentionこの注釈は、予約の範囲を示し、コンパイラは、コードの存在が実行されていないときSOURCE =注釈が破棄される、注釈がちょうどほしいIDE警告範囲の上限は、実行中のVMまたは保持する必要はありません。 @Retentionを(SOURCE) // @Target場所注釈を使用する必要があるパラメータ=注釈プロセスパラメータに使用する @Target({パラメーター}) // 整数値が@LongDef @ @IntDefことを除いて、明示的に定義された宣言しましたStringDef等 @IntDef(値= {Level.LEVEL_V、Level.LEVEL_D、Level.LEVEL_I、Level.LEVEL_W、Level.LEVEL_E}) パブリック @ インタフェースのLogLevel { }
その後、我々は、ログレベルを作成し、このアノテーションを使用します
公共 ボイド setLogLevel(@LogLevel INT レベル){ この .level = レベル。 }
その後、我々は結果を見て、ちょうどここに整数値を入力し、あなたは、Androidのスタジオは、我々は以下の値のみを伝えるために選択することができ、警告されている見ることができます。
プロンプト正しいなしの警告を入力した後。
オプション2:
注釈クラス自体は、実際のインターフェイスであるため、これは、定数の直接の暴力、書き込みノートに簡単な方法です。その後、独自の定数を宣言
@Retention(SOURCE) @Target({PARAMETER}) @IntDef(値 = {LogLevel.LEVEL_V、LogLevel.LEVEL_D、LogLevel.LEVEL_I、LogLevel.LEVEL_W、LogLevel.LEVEL_E}) パブリック @ インタフェースのLogLevel { INT LEVEL_V = 1 。 int型 LEVEL_D = 2 ; int型 LEVEL_I = 3 ; INT LEVEL_W = 4 。 int型の LEVEL_E = 5 ; }
終わり