Netbeans声明提示语法,用于try-block中的语句

时间:2015-05-22 12:05:16

标签: java netbeans refactoring

我想检查并将特定语句转换为try-with-ressources表单。但我觉得declarative hints format的语法使我无法解决这个问题。

我试过了:

<!description="Stmt into try-with-resources">
try {
  $before$;
  someMethod($arg1, $arg2, $arg3);
  $after$;
 } catch $catches$
=>
try (Resource res = acquire($arg1, $arg2, $arg3))     {
  $before$;
  res.use();
  $after$;
} catch $catches$

但是应用于我的代码,模式永远不会匹配。以下是我希望匹配的示例代码部分:

public boolean step(String input) {
  String id = getId(ID);
  try {
    SomethingBefore();
    someMethod(10, "label", name);
    return true;
  } catch (Exception ex) {
    log.error("problem", ex);
    return true;
  }
}

知道为什么这不匹配? ESP。因为我认为文档中的示例与我的匹配,但finally

除外
try {
  $statements$;
} catch $catches$
  finally {
  $finally$;
}

更新:似乎Jackpot - 规则使用相同的语法,可能是因为它使用相同的代码库。

2 个答案:

答案 0 :(得分:1)

这种重构非常麻烦且记录不完整。您必须根据此示例更改模式

<!description="Stmt into try-with-resources">
try {
  $before$;
  $name($arg1, $arg2, $arg3);
  $after$;
 } catch $catches$
=>
try (Resource res = acquire($arg1, $arg2, $arg3))     {
  $before$;
  res.use();
  $after$;
} catch $catches$

但是,如果您还有其他方法调用3个参数,我不知道如何处理它。

答案 1 :(得分:0)

根据我在代码返回正在使用,我不认为可以在$ $之后的地方使用。因此,如果您从代码中删除它可能匹配。