Javaから密封されたクラスとしてパラメータでKotlinの関数を呼び出します

Khusl:

マイKotlinクラスは、TimeUtils密封されたクラスは、として宣言されています:

sealed class TimeUnit {
    object Second : TimeUnit()
    object Minute : TimeUnit()

fun setTimeOut(timeout : TimeUnit) {
    // TODO something
}

私のJavaクラスを呼んでいるsetTimeOutような方法を:

TimeUtils obj = new TimeUtils();
if (some condition) {
    obj.setTimeOut(TimeUtils.TimeUnit.Minute);   // ERROR
} else if (some other condition) {
    obj.setTimeOut(TimeUtils.TimeUnit.Second);   // ERROR
}

私が述べて2行以上で、エラーを取得していますexpression required誰も助けにはどのように私はそれを解決することができますすることができますか?

jaychang0917:

あなたは、次のように関数を起動する必要があります。

obj.setTimeOut(TimeUtils.TimeUnit.Minute.INSTANCE);

ので、それはだobject Minute、次のJavaコードにコンパイルされます。

public final class Minute {
   public static final Minute INSTANCE;

   private Minute() {
   }

   static {
      Minute var0 = new Minute();
      INSTANCE = var0;
   }
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=231730&siteId=1
おすすめ