Eclipse中定义的$ {body_statement}在哪里

Mic*_*hal 9 java eclipse

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

// ${todo} Auto-generated method stub
${body_statement}
Run Code Online (Sandbox Code Playgroud)

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

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

Rog*_*man 8

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

这是我的Method Body模板,它会在调用方法时添加TODO和异常:

// ${todo} Implement ${enclosing_type}.${enclosing_method}
throw new RuntimeException("Unimplemented Method    ${enclosing_type}.${enclosing_method} invoked.");
Run Code Online (Sandbox Code Playgroud)

在写完后被调用

int foo = doSomething();
Run Code Online (Sandbox Code Playgroud)

产生:

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

}
Run Code Online (Sandbox Code Playgroud)

  • 我更喜欢`UnsupportedOperationException`. (4认同)

sla*_*dan 5

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

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

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