使用枚举查找长字符串描述

时间:2018-07-18 08:47:03

标签: java

我正在寻找一种基于提供的String来查找String描述的便捷方法,我想知道使用枚举来做到这一点是否有意义,或者在Java中可能有类似这样的更好模式。所以我想到了这样的东西:

public enum Descriptions
{
    A("text text text text text text text text"),
    B("text text text text text text text text"),
    C("text text text text text text text text"),
    D("text text text text text text text text");

    private final String text;

    Strings(final String text) {
        this.text = text;
    }

    @Override
    public String toString() {
        return text;
    }

}

这有意义吗?

2 个答案:

答案 0 :(得分:0)

如果我理解了您的问题,则从给定的枚举值返回一些ENUM实例:

public enum DESCRIPTION{    {
    A("This is A"),
    B("This is B"),
    C("This is C"),
    D("This is D");
    SOME_DEFAULT("This is DEFAULT");

    private final String text;

    Strings(String text) {
        this.text = text;
    }


    @Override
    public String toString() {
        return text;
    }

    public static DESCRIPTION getDescriptionFromValue(String value){
        for (DESCRIPTION desc : DESCRIPTION.values()) {
            if(desc.toString().equalsIgnoreCase(value)){
                return desc;
            }
        }
        return DESCRIPTION.SOME_DEFAULT;
    }
}

用法:

DESCRIPTION desc = DESCRIPTION.getDescriptionFromValue("This is A");

希望这会有所帮助,

答案 1 :(得分:-1)

如果您的目的只是定义字符串,那么这不是一个好的模式。

您可以简单地将它们定义为常量

public interface Message {
  String A = "Message A";
  String B = "Message B";
}