我有像这样的枚举:
public static enum Command
{
login,
register,
logout,
newMessage
}
在格式化文件时,输出结果变为:
public static enum Command
{
login, register, logout, newMessage
}
我有像这样的枚举:
public static enum Command
{
login,
register,
logout,
newMessage
}
在格式化文件时,输出结果变为:
public static enum Command
{
login, register, logout, newMessage
}
对于普通枚举项,@wjans的答案可以正常工作,但对于带有参数的枚举项则不行。为了更详细地解释他的答案,以下是在Eclipse Juno中设置最合理格式的步骤:
窗口
> 首选项
> Java
> 代码样式
> 格式化程序
编辑
换行
选项卡enum
声明树节点换行策略
设置为 每个元素都换行,每个元素在新行上(...)
,因此现在在括号中显示 3 of 3
。强制分割,即使行短于最大行宽 (...)
,因此现在在括号中显示 3 of 3
。常量
树节点强制分割,即使行短于最大行宽
这将把枚举树节点的3个子节点设置为相同的换行策略和相同的强制分割策略,除了 常量
树节点之外,因此带有参数的枚举项会被格式化为单独的行。只有当参数超过最大行宽时才会换行。
示例:
@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)
}
您可以在格式化偏好设置中指定此选项:
如果你的公司政策不允许更改格式化程序,那么这种方法也有点丑陋。但是你可以在不想被换行的行末加上注释。
public static enum Command
{
login,//
register,//
logout,//
newMessage//
};
虽然不太好,但你可以关闭Eclipse格式化程序来处理一些代码部分...
// @formatter:off
public static enum Command {
login,
register,
logout,
newMessage
};
// @formatter:on
这个选项位于Windows->Preferences->Java->Code Style->Formatter->Edit->Off/On Tags面板中。
您需要在“常量”枚举声明下设置换行策略。
将换行策略设置为:
并且
只需添加最新的Eclipse 2018.9版本。
窗口 > 首选项 > Java > 代码风格 > 格式化程序
- 编辑
换行
树节点。换行设置
'枚举'声明
常量
和常量参数
。常量需要每个元素都要换行
。
常量参数需要必要时换行
。
org.eclipse.jdt.core.formatter.alignment_for_enum_constants
设置为17
与Maven格式化程序插件一起使用有效:https://code.revelc.net/formatter-maven-plugin/
<setting
id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants"
value="17"
/>