Eclipse の外部アノテーションを使用してメソッドにアノテーションを付けようとしjava.util.List.toArray
ていますが、戻り値の型にアノテーションを付ける方法がわかりません。リストに次の署名がある場合:
@NonNull List<@NonNull Element>
List.toArray は以下を返す必要があります。
@NonNull Element @NonNull[]
ただし、リストに null 許容要素を含めることができる場合:
@NonNull List<@Nullable Element>
List.toArray も、null 許容要素を含む配列を返す必要があります。
@NonNull Element @Nullable[]
私は Eclipse Neon を使用していますが、これは可能ですか? Eclipse Neon New and Noteworthy ページはList.get() の例を提供しているようで、値の nullity を省略する必要があることを示唆していますが、それは配列では機能しないようです? 私が使用している外部注釈定義は次のとおりです。
class java/util/List
toArray
<T:Ljava/lang/Object;>([TT;)[TT;
<T:Ljava/lang/Object;>([T1T;)[T1T;
しかし、これはうまくいきません:
@NonNull
List<@NonNull String> collect = // works
@NonNull
String @NonNull [] array = collect.toArray(new String[0]);
collect.toArray
エラーとしてマークされています:
Null 型の安全性 (型注釈): 型 'String[]' の式は、'@NonNull String []' に準拠するために未チェックの変換が必要です
どうすればこれを修正できますか? これは Eclipse Neon でも動作しますか?