Khusl:
Mi clase Kotlin TimeUtils
ha declarado una clase sellada como:
sealed class TimeUnit {
object Second : TimeUnit()
object Minute : TimeUnit()
fun setTimeOut(timeout : TimeUnit) {
// TODO something
}
Mi clase Java está llamando setTimeOut
método como:
TimeUtils obj = new TimeUtils();
if (some condition) {
obj.setTimeOut(TimeUtils.TimeUnit.Minute); // ERROR
} else if (some other condition) {
obj.setTimeOut(TimeUtils.TimeUnit.Second); // ERROR
}
Estoy consiguiendo error por encima de 2 líneas que indica expression required
. Puede ayudar a nadie cómo lo puedo resolver?
jaychang0917:
Usted debe invocar la función de la siguiente manera:
obj.setTimeOut(TimeUtils.TimeUnit.Minute.INSTANCE);
Es porque object Minute
será compilado para el siguiente código de Java:
public final class Minute {
public static final Minute INSTANCE;
private Minute() {
}
static {
Minute var0 = new Minute();
INSTANCE = var0;
}
}