Java类中的字段排序在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

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

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

在工具-选项-编辑器->格式中,我有这个: 会员排序顺序: 领域 静态场 静态初始化器 静态方法 静态类 班级 实例初始化器 建设者 方法

(已选中)“按可见性对成员排序”具有: 私人的 受保护的 认 公开

(已选中)将获取器和设置器放在一起 (选中)按字母顺序对组中的备忘录排序 (未选中)排序使用依赖项 插入点(按类别排序

我希望至少放进去

private Long偏移量从private long长度开始;

预先感谢 夫

解决方法

您可以使用“源”菜单,然后选择“组织成员”来订购成员: enter image description here

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

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不应用字母顺序(英语)。>