用于为每个循环包装可迭代选择的Eclipse模板

Kev*_*ong 13 java eclipse

我想选择一个Iterable,按Alt + Shift + Z来获取"Surround With"上下文菜单,并显示一个foreachwrap模板,它将使用适当的格式将选择包装在每个循环中.

例如,我想选择

someObject.getSomeList()
Run Code Online (Sandbox Code Playgroud)

并生成这个

for (SomeListType someListType : someObject.getSomeList()) {

}
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的东西,但它似乎不起作用:

for( ${t:elemType(ls)} ${:name(t)} : ${ls:line_selection} )
{
    ${cursor}
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*nke 5

使用QuickFix(Ctrl+1在Win/Lin或Cmd+1Mac上).

您可以使用以下方法获得所需的行为:

  1. 编写返回可迭代集合的语句,例如

    someObject.getSomeList()
    
    Run Code Online (Sandbox Code Playgroud)
  2. Ctrl+1(Cmd+1在Mac上)并选择Assign statement to a new local variable(甚至可以直接组合此操作(Mac上的Cmd + 2 L),但是,如果您想使用它,可能取决于您想要记住的组合数量)

  3. 写不多于

    fore
    
    Run Code Online (Sandbox Code Playgroud)

    然后再次按Ctrl+1(Cmd+1)然后选择Iterate over an array or iterable(只需在出现quickfix菜单后立即按Enter键就可以了),你会得到这样的结果:

    for (Content content : someList) {
    
    }
    
    Run Code Online (Sandbox Code Playgroud)

您现在甚至可以内联局部变量的用法来再次删除它(当然使用QuickFix).QuickFix非常强大,因为该功能已经发布,我几乎没有使用过任何模板.