我有像这样的枚举:

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

格式化文件时,输出变为:
public static enum Command
{
login, register, logout, newMessage
}

最佳答案

@wjans的答案对于普通枚举效果很好,但对于带有参数的枚举则无效。为了进一步扩展他的答案,以下是在Eclipse Juno中为我提供最明智的格式的设置:

  • Window> Preferences> Java> Code Style> Formatter
  • 单击Edit
  • 选择Line Wrapping选项卡
  • 选择enum声明树节点
  • Line wrapping policy设置为Wrap all elements, every element on a new line (...),以便现在在括号中显示3之3。
  • 取消选中Force split, even if line shorter than maximum line width (...),以便现在在括号中显示3之3。
  • 选择Constants树节点
  • 检查Force split, even if line shorter than maximum line width

  • 这会将枚举树节点的3个子节点设置为相同的包装策略和相同的强制拆分策略,但Constants树节点除外,因此带有参数的枚举将在各自的行上进行格式化。仅当参数超过最大行宽时,它们才会换行。

    示例:

    @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)
    }
    

    09-11 18:42
    查看更多