在 Java 中覆盖枚举内的标签?

问题描述 投票:0回答:1

我有一个名为 dumbModel 的枚举,如下所示:

    import lombok.AccessLevel;
    import lombok.Getter;
    import lombok.RequiredArgsConstructor;

    @RequiredArgsConstructor(access = AccessLevel.PRIVATE)
    @Getter
    public enum DumbModel {

        NO_DATA(null),
        GAMES(1);
    
        private final Integer code;
    
    }

我也有这个类,其中包含与此枚举相关的字段。

    import lombok.AccessLevel;
    import lombok.Getter;
    import lombok.RequiredArgsConstructor;

    @RequiredArgsConstructor(access = AccessLevel.PRIVATE)
    @Getter
    public enum dumbAdvancedModel {
        @CsvBindByName(column = "id")
        @CsvBindByPosition(position = 0)
        private Long id;
        @CsvBindByName(column = "title")
        @CsvBindByPosition(position = 1)
        private String title;
        @CsvBindByName(column = "Dumb Model")
        @CsvBindByPosition(position = 2)
        private DumbModel dumbModel;

    }

我的目标是当 code == null 时,不检索“NO_DATA”而是有一个空字符串。 你知道我怎样才能实现这一目标吗?

我尝试重写 toString() 函数,但没有成功。

java enums
1个回答
0
投票

你是如何重写你的 toString() 方法的?

你尝试过这样覆盖吗?

public String getNameOrEmpty() {
        return code == null ? "" : name();
    }

    @Override
    public String toString() {
        return getNameOrEmpty();
    }
© www.soinside.com 2019 - 2024. All rights reserved.