【问题标题】:Where is ${body_statement} defined in Eclipse${body_statement} 在 Eclipse 中定义在哪里
【发布时间】:2015-07-04 03:47:55
【问题描述】:

在 Eclipse Luna 中,我想更改自动生成方法的内容,所以我去了 Window->Preferences->Java->Code Style->Code Templates->Code->Method body 看到了这个声明:

// ${todo} Auto-generated method stub
${body_statement}

是否可以更改 ${body_statement} 的内容?

编辑:@Duncan - 我不希望我生成的方法返回 null,但我希望它们抛出该方法未实现的异常。我想更改 ${body_statement} 的原因是因为我想通过一次编辑来更改所有出现的情况,并且我不想遍历所有模板并一一检查它们。

【问题讨论】:

  • 我相信这是一个常数,不能改变。它会根据需要插入合适的默认返回值或调用super(...)。如果您告诉我们您想要实现的目标可能会更容易,也许还有其他方法。

标签: java eclipse


【解决方案1】:

只需删除模板中 ${body_statement} 的调用

这是我的方法主体模板,它添加了一个 TODO 和一个异常应该调用的方法:

// ${todo} Implement ${enclosing_type}.${enclosing_method}
throw new RuntimeException("Unimplemented Method    ${enclosing_type}.${enclosing_method} invoked.");

写完后调用的时候

int foo = doSomething();

生成:

private int doSomething() {
    // TODO Implement ScaledFraction.doSomething
    throw new RuntimeException("Unimplemented Method ScaledFraction.doSomething invoked.");

}

【讨论】:

  • 我更喜欢UnsupportedOperationException
  • 更具表现力。也许我会换。
【解决方案2】:

${body_statement} 是一个“变量”。点击代码模板列表右侧的“编辑...”编辑代码模板并使用“插入变量...”查看可用变量列表。

${body_statement} 变量对于新方法实际上是空的。如果您想为每个新方法提供一些默认代码,您可以简单地在 ${body_statement} 上方添加该文本。

在该模板中的变量下方添加真实代码将不起作用,因为在某些情况下${body_statement} 将被return 语句替换。

【讨论】:

  • 如果我只想添加一个空行作为默认代码怎么办?
猜你喜欢
  • 2023-03-08
  • 1970-01-01
  • 2020-07-13
  • 2016-03-22
  • 2016-02-19
  • 2016-12-31
  • 2011-10-08
  • 2010-09-30
相关资源
最近更新 更多