问题

我有这样的枚举:

public static enum Command
{
login,
register,
logout,
newMessage
}

格式化文件时,输出变为:

public static enum Command 
{
login, register, logout, newMessage
}

#1 热门回答(182 赞)

@wjans的答案适用于普通枚举,但不适用于带参数的枚举。为了扩展他的答案,这里是Eclipse Juno中为我提供最合理格式的设置:

  • 窗口>首选项> Java>代码样式>格式化程序
  • 单击"编辑"
  • 选择Line Wrapping选项卡
  • 选择枚举声明treenode
  • 设置换行策略以换行所有元素,新行上的每个元素(...)所以现在它在括号中表示3中的3。
  • 取消选中强制分割,即使行短于最大行宽(...),所以它现在在括号中表示3中的3。
  • 选择常量treenode
  • 检查力分割,即使线短于最大线宽

这将enum treenode的3个子节点设置为相同的包装策略,并且除了Constantstreenode之外,使用相同的强制拆分策略,因此带有参数的枚举将在各自的行中进行格式化。如果参数超过最大线宽,则它们将仅换行。
示例:****@wjans

enum Example {
    CANCELLED,
    RUNNING,
    WAITING,
    FINISHED
}

enum Example {
    GREEN(
        0,
        255,
        0),
    RED(
        255,
        0,
        0)
}

上述解决方案:

enum Example {
    CANCELLED,
    RUNNING,
    WAITING,
    FINISHED
}

enum Example {
    GREEN(0, 255, 0),
    RED(255, 0, 0)
}

#2 热门回答(49 赞)

你可以在格式化程序首选项中指定:

  • 首选项:Java - 代码样式 - 格式化程序
  • 单击"编辑"
  • 选择"Line Wrapping"选项卡
  • 在左侧的框中选择"枚举"声明 - >常量
  • 将换行策略设置为'换行所有元素,新行上的每个元素'
  • 检查'强制拆分......'

#3 热门回答(9 赞)

它也有点丑陋,但是如果你的公司政策阻止你更改格式化程序,你可以在不想被包装的行的末尾添加注释。

public static enum Command 
{
    login,//
    register,//
    logout,//
    newMessage//
};

原文链接