Eclipse:Java Enum自动完成交换机案例

时间:2010-04-11 21:38:26

标签: eclipse autocomplete switch-statement

是否有一种CTRL +类似空格的方式在Eclipse中围绕给定的Java Enum“自动构建”一个switch案例?我想要一个包含所有Enum案例的存根...

3 个答案:

答案 0 :(得分:120)

它已经在Eclipse中存在了很长时间。诚然,这有点难以找到。首先从

开始
switch (myEnum) {

}

此时,您的光标通常位于语句块{}内。您需要使用switch关键字将您的cusror放回到该行,然后按 Ctrl + 1 并选择添加缺失的案例陈述 。这样它就会插入任何可能的case

alt text

您直观地希望此选项在语句块{}内可用,但不是。


更新:自从Eclipse Kepler(或者已经是Juno,但它太不稳定以至于我从未真正使用它),这个选项终于可以通过 Ctrl + 1 也在语句块中。

enter image description here

答案 1 :(得分:4)

我不知道是否可以将此作为模板,因为模板必须知道您正在使用哪种枚举类型。但是您可以编写一个小脚本来为您打印语句,然后将其输出复制到源文件中。

public class SwitchWriter {
  public static void printSwitchStatement(String varName, Class<?> E) {
    System.out.format("switch(%s) {\n", varName);
    for (Object o : E.getEnumConstants()) {
      System.out.format("case %s:\n  // TODO: Auto-generated switch statement stub\n  break;\n", o);
    }
    System.out.println("default:\n  // TODO: Auto-generated switch statement stub\n}");
  }
}

SwitchWriter.printSwitchStatement("action", java.awt.Desktop.Action.class)的输出:

switch(action) {
case OPEN:
  // TODO: Auto-generated switch statement stub
  break;
case EDIT:
  // TODO: Auto-generated switch statement stub
  break;
case PRINT:
  // TODO: Auto-generated switch statement stub
  break;
case MAIL:
  // TODO: Auto-generated switch statement stub
  break;
case BROWSE:
  // TODO: Auto-generated switch statement stub
  break;
default:
  // TODO: Auto-generated switch statement stub
}

答案 2 :(得分:0)

您可以使用以下方法添加自己的代码模板:Windows-&gt;偏好设置&gt; Java-&gt;编辑器 - &gt;模板。

添加代码模板后,键入足够的模板名称字符以使其唯一;键入CTRL + Space;并且您定义的代码将替换模板名称字符。

切换模板在Eclipse Galileo中预定义。 sw + CTRL + Space应该给你一个switch语句。您可能必须调整现有模板以提供switch-enum组合。