比方說,我有下面的代碼塊:擴大變量範圍超出了花括號中的Java
int version;
String content;
synchronized (foo) {
version = foo.getVersion();
content = foo.getContent();
}
// Do something with version and content
其目的是抓住了一些對象foo的版本和內容的線程安全一致的看法。
有沒有辦法更簡潔地寫出來看起來更像這樣?
synchronized (foo) {
int version = foo.getVersion();
String content = foo.getContent();
}
// Do something with version and content
的問題是,在這個版本的變量在(同步)大括號的範圍限定,並且因此不是塊的外部訪問。所以,問題是:有沒有辦法將這些花括號標記爲不定義新的作用域塊或將變量標記爲屬於父作用域而不必在那裏聲明它們?
(注:我不想簡單的// Do something with version and content
拉入同步塊)
而且有沒有辦法增加一個定義的變量的範圍與一些修改器,對嗎? – 2013-02-10 02:10:42
@MarkusA。 - 不,沒有修飾符可以將變量暴露在聲明範圍之外。 – Perception 2013-02-10 02:16:25