Upgrade to Pro — share decks privately, control downloads, hide ads and more …

KotlinユーザのためのJSpecify入門 / JSpecify 101 for Kotl...

Kengo TODA
November 21, 2024

KotlinユーザのためのJSpecify入門 / JSpecify 101 for Kotlin Devs

集まれKotlin好き!Kotlin愛好会 vol.55で発表した内容です。

Kengo TODA

November 21, 2024
Tweet

More Decks by Kengo TODA

Other Decks in Technology

Transcript

  1. #love_kotlin Kotlinが静的解析アノテーションをどう使っているか $ javap -v Sample RuntimeInvisibleAnnotations: 0: #13() org.jetbrains.annotations.NotNull

    RuntimeInvisibleAnnotations: 0: #15() org.jetbrains.annotations.Nullable // Kotlin class Sample { fun notNull(): Object = Object() fun nullable(): Object? = Object() } 7
  2. #love_kotlin まとめ • Kotlinは2.1.0からJSpecifyを尊重しエラーとして扱うようになる予定 • 自家製JavaライブラリをKotlinから呼んでいる場合、JavaライブラリのAPIをJSpecifyアノ テーションで修飾すると良い ◦ その引数や戻り値のnullnessをうまく扱える ◦

    型を変える(Optional<T> にする)よりは導入しやすい • 一方でJSpecifyがデファクトスタンダードになるかは未知数のため、とりあえず採用するとし ても今後の動きは見たほうが良いかも 10