我的 Kotlin 類TimeUtils有一個密封類聲明為:sealed class TimeUnit { object Second : TimeUnit() object Minute : TimeUnit()fun setTimeOut(timeout : TimeUnit) { // TODO something}我的 Java 類正在調(diào)用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條經(jīng)驗 獲得超12個贊
您應(yīng)該按如下方式調(diào)用該函數(shù):
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;
}
}
添加回答
舉報
0/150
提交
取消