2017-11-03 3 views
1

私のソースの列挙体の一部をIntDefアノテーションに置き換えようとしています。私はthisの文書に従っています。IntDefを使用する型の安全性

以前は列挙型だったViewModeを保持するための変数があります。今私はそれを以下のようなものに変更しました。

@Retention(RetentionPolicy.SOURCE) 
@IntDef({ViewMode.VIEW_MODE_LIST_VIEW, ViewMode.VIEW_MODE_CARD_VIEW}) 
public @interface ViewMode { 
    int VIEW_MODE_LIST_VIEW = 0; 
    int VIEW_MODE_CARD_VIEW = 1; 
} 

@ViewMode 
public int currentViewMode = ViewMode.VIEW_MODE_LIST_VIEW; 

これは私がこの方法で

this.currentViewMode = 987; //currentViewMode should be 0 or 1. Nothing else. 

を次のことを行っている。しかし、これは今私にコンパイルエラーを与えていない、安全であるかどうかをテストします。私はここに何かを逃していますか

+1

"私にコンパイルエラーを与えています"(これはあなたが書いたものです)、または "**私にコンパイルエラーを出さない"という意味ですか? – mernst

+0

@mernstそれを指摘してくれてありがとう。それは間違いでした。それを修正しました –

答えて

0

列挙注釈がちょうど糸くずをチェックしているので、あなたは、コンパイルエラーを取得することはできません:あなたは、Android Studioで直接エラーマーカーが表示されるはずですか、あなたは、コマンドラインからアンドロイドリントチェックを実行したときにImprove Your Code with Lint

を参照してください。 Improve Your Code with Lint

を参照してください。注:あなたも自動的に糸くずのチェックを実行するようにビルドを設定することができます。
SO: Run lint when building android studio projects
を参照してくださいしかし、あなただけのリリースのためにそれを実行することもできますので、リンターを実行すると、ビルドするかだけで、ある程度の時間がかかりますあなたのCIサーバー。

関連する問題