以下枚举定义有效。是否可以访问“内部属性”auditData 或函数auditor?
enum class GWGStatus {
UNCHECKED,
CHECKED {
lateinit var auditDate: Date
fun auditor() : String = "Peter"
}
}
GWGStatus.CHECKED.??? (does not work)
Run Code Online (Sandbox Code Playgroud) 已经有类似的问题,但它没有回答以下问题。众所周知,字段的值不一定在线程之间立即同步。但是局部变量也是这种情况吗?可以抛出 IllegalStateException 吗?
public static void main(String[] args) {
final Thread mainThread = Thread.currentThread();
final Integer[] shared = new Integer[1];
new Thread(new Runnable() {
@Override
public void run() {
shared[0] = 1;
mainThread.interrupt();
}
}).start();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
if (shared[0] == null) throw new IllegalStateException("Is this possible?");
}
}
Run Code Online (Sandbox Code Playgroud)