Eclipse:Java Enum自动完成切换案例

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

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

提问于
用户回答回答于

它在Eclipse中已经有很多年了。无可否认,这只是有点难以找到。首先从开始

switch (myEnum) {

}

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

你会直觉地期望这个选项在语句块内部可用{},但是没有。

更新:自从Eclipse Kepler(或者也许已经是Juno,但它非常不稳定以至于我从未真正使用过它),该选项最终也可以通过语句块内的Ctrl+ 1来使用。

用户回答回答于

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

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
}

扫码关注云+社区