[英]Expanding variable scope beyond curly braces in 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
。到synchronized块)
抱歉不行。 当你越来越多地使用这种语言时,这只是看起来更好/更正常的东西。
如果您希望无法从其他范围访问这些变量,则可以在另一个范围中定义变量和同步块。 像这样的东西:
{
int version;
String content;
synchronized (foo) {
version = foo.getVersion();
content = foo.getContent();
}
// Do something with version and content
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.