Eclipse Formatter:如何避免注释后缩进方法声明?

Eclipse Formatter: How to avoid indentation of method declaration after annotation?

我有一个带有注释的方法声明,由 Eclipse Mars 格式化如下:

@Override
        void addLoadShiftingConstraints() throws NoSuchDataException {
    //method body
}

我不想缩进方法声明:

@Override
void addLoadShiftingConstraints() throws NoSuchDataException {
    //method body
}

目前我有以下方法声明的格式化程序设置:

右键单击项目=>属性=>Java代码样式=>格式化程序 => 编辑活动配置文件 => 换行 => 方法声明 => 声明 => 必要时换行

如果我选择 不换行 选项,不需要的缩进就会消失。但是,我想保留长声明的包装。

这是一个 Eclipse 错误还是我必须更改注释的其他设置以避免缩进?

这确实是 a bug (related)。解决方法是按照您的描述将设置设置为 "Do not wrap" 或添加访问修饰符,例如 private.

(由于信誉不足无法发表评论,但通过搜索找到了这个答案,适用于第二种情况。)

我在局部变量的缩进方面遇到了类似的问题,只有在注释后面放置注释时才会影响。 @Stefan 的回答也适用于此。

 @SuppressWarnings("JavaReflectionMemberAccess") // implicit method Enum#valueOf(String)
 Method method = class_.getMethod("valueOf", String.class);

正在重新格式化为

@SuppressWarnings("JavaReflectionMemberAccess") // implicit method Enum#valueOf(String)
        Method method = class_.getMethod("valueOf", String.class);

但已通过添加 final 修饰符修复:

@SuppressWarnings("JavaReflectionMemberAccess") // implicit method Enum#valueOf(String)
final Method method = class_.getMethod("valueOf", String.class);