私は最後のJDK 8(B116)をインストールしたが、私は型注釈を使用できないことに気づきました。たとえば私が書く場合は、Javaチュートリアルを読み取るための :のJava 8、型注釈とJSR 308
String str = null;
String myString = (@NonNull String) str;
または
TEST st = new @Interned TEST();
コンパイラ私に次のエラー与える:
annotation type not applicable to this kind of declaration
を今では動作します。型注釈を使用する前に、 という注釈に@Target(ElementType.TYPE_USE)
と注釈を付ける必要があります。下のコメントを見てください!
のような注釈あれば私も理解していない:NonNull
、Interned
などが JDKに挿入されるか、我々はChecker Framework
これらの注釈は、それらの位置に適用できることを確認してください。 '@ Target'アノテーションを確認してください。 –
Java 8コンパイラを使用していて、ソースレベルをJava 8に設定していますか?あなたが言っていることは、Oracle JavaチュートリアルでJava 8について語っていることとは直接矛盾しているためです。 http://docs.oracle.com/javase/tutorial/java/annotations/basicsを参照してください。html –
@Sotirios Delimanolis、それは私の注釈インターフェイスで動作します。たぶん私はNonNull、Internedなどで混乱しています... JDKには存在しません...タイプアノテーションを使用すると@Target(ElementType.TYPE_USE)を使用すれば十分です。 – xdevel2000