2017-07-25 6 views
2

は、私は、次の方法がありますKotlinコードで注釈タイプパラメータJavaでは

public Optional<Foo> getFoo() { 
    // always return some non-null value 
} 

を、このメソッドの戻り型はOptional<Foo!>!として与えられます。 @Nonnull注釈を使用すると、これをOptional<Foo!>に減らすことができます(つまり、Fooタイプのみがヌルチェックされなくなります)。

メソッドに注釈を付けて、Kotlinコンパイラが戻り値を正しくヌルチェックできるようにする方法はありますか?

+0

私が知っている限り、ジェネリックパラメータのアノテーションが許可されているJava 8以降でのみこれを行うことができます – Mibac

答えて

4

type useFooの注釈を付けると、nullability annotations that the Kotlin compiler understandsの一部に注釈を付けることができます。残念ながら、リストの一部の注釈ライブラリでは、型使用注釈はサポートされていません。その後、戻り値の型がする

import org.jetbrains.annotations.NotNull; 

... 

public @NotNull Optional<@NotNull Foo> getFoo() { 
    // always return some non-null value 
} 

:あなたのプロジェクトへの依存関係としてライブラリを追加し、タイプの使用に注釈を付けることができるように

私は、@NotNullからorg.jetbrains:annotations:15.0(ただし、13.0は)TYPE_USE目標を持っていることがわかりましたKotlinではOptional<Foo>と見なされます。

これはもちろん、TYPE_USEターゲットをサポートする上記のリストからの他のnull可能性注釈でも実行できます。

関連する問題