Eclipse: Java Enum auto-completion of switch case

后端 未结 3 1549
遥遥无期
遥遥无期 2021-01-30 16:03

Is there a CTRL+space -like way of \"auto-constructing\" a switch case around a given Java Enum in Eclipse? I\'d like a stub with all Enum cases...

相关标签:
3条回答
  • 2021-01-30 16:33

    I don't know if it's possible to do this as a template, because the template would have to know which enum type you were using. But you could write a little script to print out the statement for you, and then just copy its output into your source file.

    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}");
      }
    }
    

    Output of 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
    }
    
    0 讨论(0)
  • 2021-01-30 16:34

    You can add your own code templates using: Windows->Preferences->Java->Editor->Templates.

    Once you have added a code template, type enough characters of the template name to make it unique; type CTRL+Space; and your defined code will replace the template name characters.

    The template for switch is predefined in Eclipse Galileo. sw+CTRL+Space should give you a switch statement. You might have to adapt an existing template to give you the switch-enum combination.

    0 讨论(0)
  • 2021-01-30 16:45

    It has been in Eclipse for ages. It's admittedly only a bit hard to find. First start with

    switch (myEnum) {
    
    }
    

    At that point, your cursor would usually be inside the statement block {}. You need to put your cusror back to the line with the switch keyword and press Ctrl+1 and choose Add missing case statements. This way it will insert any possible case.

    alt text

    You'd intuitively expect this option to be available inside the statement block {} as well, but no.


    Update: since Eclipse Kepler (or perhaps already Juno, but it's so instable that I never really used it), this option is finally available via Ctrl+1 inside the statement block as well.

    enter image description here

    0 讨论(0)
提交回复
热议问题