Eclipse:Java Enum 自动完成 switch case
Posted
技术标签:
【中文标题】Eclipse:Java Enum 自动完成 switch case【英文标题】:Eclipse: Java Enum auto-completion of switch case 【发布时间】:2011-02-06 19:24:33 【问题描述】:在 Eclipse 中是否有类似 CTRL+空格的“自动构造”围绕给定 Java 枚举的 switch case 的方式?我想要一个包含所有 Enum 案例的存根...
【问题讨论】:
如果您还不知道,您可以让 Eclipse 为您填写每个case
语句(只需输入 case
然后按 ctrl-space ) 这已经节省了相当多的时间。它会自动排除您已经使用过的值,但不能绝对保证您不会忘记某个值,就像您建议的模板一样。
【参考方案1】:
它在 Eclipse 中已经存在很长时间了。诚然,它只是有点难找。先从
开始switch (myEnum)
此时,您的光标通常会位于语句块 内。您需要将您的光标放回带有
switch
关键字的行,然后按Ctrl+1 并选择添加缺失的case 语句。这样它将插入任何可能的case
。
您会直观地期望此选项在内部语句块 中也可用,但不是。
更新:自从 Eclipse Kepler(或者可能已经是 Juno,但它太不稳定以至于我从未真正使用过它)以来,这个选项终于通过 Ctrl 可用+1 在语句块中也是如此。
【讨论】:
Eclipse 有很多很棒但很难找到的特性。有什么好的快速参考吗?最近有一个 SO 线程有很多很好的提示。 谢谢!这个答案帮助我发现了一种用于 NetBeans 的类似技术。输入switch (myEnum)
后,将光标放在 (
内,然后按 Alt+Enter 以选择“添加缺失的大小写子句”。
@BrandonMintern 哇,谢谢。强调“将光标放在括号内 ((
)”——而不是括号内 (
)。【参考方案2】:
我不知道是否可以将其作为模板执行,因为模板必须知道您使用的是哪种枚举类型。但是您可以编写一个小脚本为您打印出该语句,然后将其输出复制到您的源文件中。
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
【讨论】:
【参考方案3】:您可以使用以下方法添加自己的代码模板:Windows->Preferences->Java->Editor->Templates。
添加代码模板后,键入模板名称的足够字符以使其唯一;键入 CTRL+空格;并且您定义的代码将替换模板名称字符。
switch 的模板是在 Eclipse Galileo 中预定义的。 sw+CTRL+Space 应该给你一个 switch 语句。您可能必须调整现有模板才能为您提供 switch-enum 组合。
【讨论】:
以上是关于Eclipse:Java Enum 自动完成 switch case的主要内容,如果未能解决你的问题,请参考以下文章
在eclipse中,老是提示下列的java程序,enum无法解析为类型,是啥原因啊,怎样解决这个问题???
java.lang.Enum 类型无法解析 - 在 Eclipse 中导入 Java 项目后出现错误