Kus*_*hal 2 java kotlin sealed-class
我的Kotlin类TimeUtils有一个密封的类,声明为:
sealed class TimeUnit {
object Second : TimeUnit()
object Minute : TimeUnit()
fun setTimeOut(timeout : TimeUnit) {
// TODO something
}
Run Code Online (Sandbox Code Playgroud)
我的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
}
Run Code Online (Sandbox Code Playgroud)
我在上面两行指出错误expression required。谁能帮助我解决该问题?
您应该按以下方式调用该函数:
obj.setTimeOut(TimeUtils.TimeUnit.Minute.INSTANCE);
Run Code Online (Sandbox Code Playgroud)
这是因为object Minute将被编译为以下Java代码:
public final class Minute {
public static final Minute INSTANCE;
private Minute() {
}
static {
Minute var0 = new Minute();
INSTANCE = var0;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |