比方说,我有下面的代码块:扩大变量范围超出了花括号中的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