gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 14:11:34 24 4
gpt4 key购买 nike

我的 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
}

我在上面两行中收到错误,指出需要表达式。谁能帮我解决这个问题吗?

最佳答案

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

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;
}
}

关于java - 从 java 调用带有参数作为密封类的 Kotlin 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57078908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com