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

Java 使用枚举查找长字符串描述,java,Java,我正在寻找一种基于提供的字符串查找字符串描述的方便方法,我想知道使用枚举进行查找是否有意义,或者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

我正在寻找一种基于提供的字符串查找字符串描述的方便方法,我想知道使用枚举进行查找是否有意义,或者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;
    }

}

这有意义吗?

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

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

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

如果我理解您的问题,请从给定的枚举值返回某个枚举实例:

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

希望这能有所帮助,

为什么不直接使用常量呢?好吧,那么这个类的目的就是只存储常量,我真的不喜欢,枚举结构看起来是一个更好的解决方案,但我可能错了。我正在寻找一种方便的方法,根据提供的字符串查找字符串描述,听起来像
Map
,那么这个类的目的就是存储常量,我不太喜欢,枚举结构看起来是一个更好的解决方案,但我可能错了。你错了,这不是枚举的目的。您需要常量或映射。此外,我看不出您所显示的内容与公共静态最终字符串a=“somestring”之间有什么大的区别。这有意义吗?不可以。当使用常量时,更喜欢
final类
es,使用
private
构造函数<代码>接口s没有意义