可以將volatile修飾符添加到私有和靜態的字段中?Java反射,將volatile修飾符添加到私有靜態字段
示例代碼
// I don't know when test is initalized
public class Test {
private static String secretString;
public Test() {
secretString = "random";
}
}
public class ReflectionTest extends Thread {
public void run() {
Class<?> testClass = Class.forName("Test");
Field testField = testClass.getDeclaredField("secretString");
while (testField.get(null) == null) {
// Sleep, i don't know when test is initalized
// When it'is i need the String value
// But this loop never end.
}
}
}
我想,如果我設置字段揮發性循環結束 沒有任何問題
添加最後的關鍵字爲什麼你想揮發? – SMA 2014-12-19 11:58:18
你的意思是,寫'private static volatile string secretString'?是的,那是可能的。如果你不是這個意思,那麼你的問題就會讓人產生誤解和不準確。 – 2014-12-19 12:00:29
而不是問是否可能,以及它是否會有所幫助,爲什麼不嘗試做,看看會發生什麼? – Dima 2014-12-19 12:04:02