在Java中,我们可以这样做:
public class TestA {
public static final boolean flag = true;
public static final String str = flag ? "A" : "B"; // ok
}
Run Code Online (Sandbox Code Playgroud)
但不能在科特林
class TestA {
companion object {
const val flag = true
const val str = if (flag) "A" else "B" //err: Const 'val' initializer should be a constant value
val str2 = if (flag) "A" else "B" //ok, but not equals [public static final] in Java.
}
}
Run Code Online (Sandbox Code Playgroud)
在非const str2上试过@JvmStatic,但反编译成java代码,就是这样 …