有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何避免Checkstyle的FinalClass模块在存在从基继承的内部类时抱怨?

下面是我的real model类的一个简化场景,以突出这个问题

public class NullableModel {
    public static final NullableModel NULL = new NullableModel() {

        @Override
        public boolean isNull() {
            return true;
        }
    };

    public static NullableModel withValues(Object... values) {
        // some checks that sets 'allValid' boolean depending if value is OK
        boolean allValid = ...
        return allValid? new NullableModel(values) : NULL;
    }

    private Object[] values;

    private NullableModel(Object... values) {
        this.values = values;
    }

    public boolean isNull() {
        return false;
    }

    ...
}

如果我没有遗漏任何东西,那么这段代码可以正确编译。如果我在启用FinalClass模块的情况下运行checkstyle,它会抱怨,因为NullableModel不是final(而所有构造函数都是私有的)。但是,如果我创建最终的NullableModel,它将在NULL静态最终声明中给我一个编译错误,因为任何东西都不能从NullableModel继承,因为它是最终的

FinalClass检查对我的项目的很多其他部分都有效,这只是个例外。因此,由于我无法使其成为最终版本,那么问题是,如何在不禁用FinalClass检查的情况下避免checkstyle错误

提前谢谢


共 (0) 个答案