Kotlin Tips

last update: 2018-09-20 00:00:00 +0000

kotlinからjavaを呼ぶ場合の型について

kotlinの型にはnon-null, nullableplatformの3種類がある。 通常のTypeはnon-nullで、型にType?をつけるとnullable、Javaで実装されていてアノテーション指定されてないものはplatform typeでType!を付けて表示される。

アノテーションで指定されているものは、kotlinではnon-null, nullableになる。

  • 呼び出される側のjavaコード
    public class Foo {
      @Nonnull
      public static String getHoge() {
          return "hoge";
      }
      @Nullable
      public static String getFuga() {
        return "huga";
      }
      public static String getPiyo() {
        return "piyo";
      }
    }
    
  • 呼び出す側のkotlinコード
    val hoge = Foo.getHoge() // String
    val fuga = Foo.getFuga() // String?
    val piyo = Foo.getPiyo // String!
    

参考

Boolean?を条件で使う場合

Boolean型の場合、ifの条件に値をそのまま入れることが出来る。

  val flag: Boolean = true

  if (flag) {
    ...
  }

Boolean?型の場合は

  val flag: Boolean? = null
  if (flag == true) {
      ...
  }