为了账号安全,请及时绑定邮箱和手机立即绑定

从java调用带有参数作为密封类的Kotlin函数

从java调用带有参数作为密封类的Kotlin函数

扬帆大鱼 2023-03-31 15:29:14
我的 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。任何人都可以帮助我如何解决它?
查看完整描述

1 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

您应该按如下方式调用该函数:


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;

   }

}


查看完整回答
反对 回复 2023-03-31
  • 1 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信