假设我有以下代码块:
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
入同步块。)