Java class 中的排序字段在 NetBeans 中不起作用

Sorting fields in Java class not working in NetBeans

我正在尝试使用 NetBeans,并且非常喜欢某些事情的完成方式。我来自 Eclipse。对源代码项目进行排序的功能等功能不起作用。 使用:

Product Version: Apache NetBeans IDE 12.1
Java: 1.8.0_131; Java HotSpot(TM) 64-Bit Server VM 25.131-b11
Runtime: Java(TM) SE Runtime Environment 1.8.0_131-b11
System: Linux version 4.8.6-300.fc25.x86_64 running on amd64; UTF-8; en_US (nb)
User directory: /home/bpracht/.netbeans/12.1
Cache directory: /home/bpracht/.cache/netbeans/12.1

在示例 class 中,我想以常规方式对其进行排序(即私有字段排在顶部,public 方法排在底部。单击格式“Alt”后-Shift-F" 在下面的 class 上,它不会进一步改变顺序:

class Token<T> {

    public Token offsetStart(final Long value) {
        this.offsetStart = value;
        return this;
    }

    public Token length(final Long value) {
        this.length = value;
        return this;
    }

    public Token fullyResolved(final Boolean value) {
        this.fullyResolved = value;
        return this;
    }

    public Token parentToken(final Token value) {
        this.parentToken = value;
        return this;
    }

    public Token firstChildToken(final Token value) {
        this.firstChildToken = value;
        return this;
    }

    public Token lastChildToken(final Token value) {
        this.lastChildToken = value;
        return this;
    }

    public Token previousToken(final Token value) {
        this.previousToken = value;
        return this;
    }

    public Token nextToken(final Token value) {
        this.nextToken = value;
        return this;
    }

    public Token lambdaSetValue(final LambdaSetValue<T> value) {
        this.lambdaSetValue = value;
        return this;
    }

    private Long offsetStart;

    private Long length;

    private Boolean fullyResolved;

    private Token parentToken;

    private Token firstChildToken;

    private Token lastChildToken;

    private Token previousToken;

    private Token nextToken;

    private LambdaSetValue<T> lambdaSetValue;

    public Long getLength() {
        return length;
    }

    public long getOffsetStart() {
        return offsetStart;
    }

    public void setOffsetStart(long offsetStart) {
        this.offsetStart = offsetStart;
    }

    public void setLength(Long length) {
        this.length = length;
    }

}

interface LambdaSetValue<T> {

    void setValue(T value);
}

在 Tools-Options-Editor->Formatting 中我有这个: 成员排序顺序: 领域 静态字段 静态初始化器 静态方法 静态 类 类 实例初始化器 构造函数 方法

(选中)按可见性对成员进行排序具有: 私人的 受保护 默认 Public

(勾选)让 getter 和 setter 在一起 (选中)按字母顺序对组中的备忘录进行排序 (未选中)排序使用依赖项 插入点(按类别排序

我希望它至少放

private Long offsetStart after private Long length;

提前致谢 樵夫

您可以使用“来源”菜单然后选择“组织成员”来对成员进行排序:

使用我的设置组织成员的结果:

class Token<T> {

    private Long offsetStart;

    private Long length;

    private Boolean fullyResolved;

    private Token parentToken;

    private Token firstChildToken;

    private Token lastChildToken;

    private Token previousToken;

    private Token nextToken;

    private LambdaSetValue<T> lambdaSetValue;

    public Token offsetStart(final Long value) {
        this.offsetStart = value;
        return this;
    }

    public Token length(final Long value) {
        this.length = value;
        return this;
    }

    public Token fullyResolved(final Boolean value) {
        this.fullyResolved = value;
        return this;
    }

    public Token parentToken(final Token value) {
        this.parentToken = value;
        return this;
    }

    public Token firstChildToken(final Token value) {
        this.firstChildToken = value;
        return this;
    }

    public Token lastChildToken(final Token value) {
        this.lastChildToken = value;
        return this;
    }

    public Token previousToken(final Token value) {
        this.previousToken = value;
        return this;
    }

    public Token nextToken(final Token value) {
        this.nextToken = value;
        return this;
    }

    public Token lambdaSetValue(final LambdaSetValue<T> value) {
        this.lambdaSetValue = value;
        return this;
    }

    public Long getLength() {
        return length;
    }

    public long getOffsetStart() {
        return offsetStart;
    }

    public void setOffsetStart(long offsetStart) {
        this.offsetStart = offsetStart;
    }

    public void setLength(Long length) {
        this.length = length;
    }
}

interface LambdaSetValue<T> {
    void setValue(T value);
}

如我的评论所述,private Long offsetStartprivate Long length 具有相同的访问级别和相同的类型,没有功能代码差异,并且 Netbeans 不应用字母顺序(英文)。