Можем ли мы иметь пространство внутри константы в Enum в Java - PullRequest
0 голосов
/ 26 сентября 2019

Мне нужно что-то вроде этого

public enum SolutionType {
        RMS,
        CPA,
        BUSINESS DRIVERS,
        NA 
}

, где BUSINESS DRIVERS - это значение с пробелом

1 Ответ

5 голосов
/ 26 сентября 2019

Java запрещает использование пробелов в перечислениях.

Однако вы можете использовать подчеркивание и реализовать пользовательскую функцию toString ():

public enum SolutionType {
    RMS, CPA, BUSINESS_DRIVERS, NA;

    @Override
    public String toString() {
        return this.name().replace("_", " ");
    }
}

Или просто добавить настраиваемое поле в перечисление:

public enum SolutionType {
    RMS, CPA, BUSINESS_DRIVERS("BUSINESS DRIVERS"), NA;

    private String readableName;

    private SolutionType() {
        this.readableName = this.name();
    }

    private SolutionType(String name) {
        this.readableName = name;
    }

    public String getReadableName() {
        return this.readableName;
    }
}

или смесь двух ...

public enum SolutionType {
    RMS, CPA, BUSINESS_DRIVERS("BUSINESS DRIVERS"), NA;

    private String readableName;

    private SolutionType() {
        this.readableName = this.name();
    }

    private SolutionType(String name) {
        this.readableName = name;
    }

    @Override
    public String toString() {
        return this.readableName;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...