我有一些以两种方式使用花括号的Java代码
// Curly braces attached to an 'if' statement:
if(node.getId() != null)
{
node.getId().apply(this);
}
// Curly braces by themselves:
{
List<PExp> copy = new ArrayList<PExp>(node.getArgs());
for(PExp e : copy)
{
e.apply(this);
}
}
outAMethodExp(node);
第一个
if
语句之后的那些独立的花括号是什么意思? 最佳答案
额外括号的唯一目的是提供范围限制。 List<PExp> copy
仅存在于这些花括号内,并且在它们之外没有作用域。
如果这是生成的代码,则我假设代码生成器会执行此操作,因此它可以插入一些代码(例如此代码),而不必担心它插入了List<PExp> copy
的次数,并且不必担心是否可以重命名变量(如果这样)片段多次插入同一方法。