Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取整个枚举中的字符串并返回枚举常量_Java_Enums - Fatal编程技术网

Java 获取整个枚举中的字符串并返回枚举常量

Java 获取整个枚举中的字符串并返回枚举常量,java,enums,Java,Enums,我用一些字符串作为属性的常量创建了一个枚举。每个常量中的字符串数量不同,所以我第一次使用varargs。这是我的枚举: enum CursorInfo { NORMAL("Walk-to"), TAKE("Take"), USE("Use"), TALK("Talk-to"), FISH("Net", "Bait", "Cage", "Harpo"); String[] toolTip; CursorInfo(String... too

我用一些字符串作为属性的常量创建了一个枚举。每个常量中的字符串数量不同,所以我第一次使用varargs。这是我的枚举:

enum CursorInfo {
    NORMAL("Walk-to"),
    TAKE("Take"),
    USE("Use"),
    TALK("Talk-to"),
    FISH("Net", "Bait", "Cage", "Harpo");

    String[] toolTip;

    CursorInfo(String... toolTip) {
        this.toolTip = toolTip;
    }
};
现在,我希望能够键入如下内容:

CursorInfo.getCursor("Bait");
然后我想让它返回:鱼或普通鱼不介意它返回什么,即:4。 我问了一些人,他说我应该把这个添加到枚举中:

private static final Set<CursorInfo> SET = EnumSet.allOf(CursorInfo.class);

    public static Optional<CursorInfo> getCursor(String toolTip) {
        return SET.stream().filter(info -> Arrays.stream(info.toolTip).anyMatch(option -> option.contains(toolTip))).findAny();
    }
但我不知道如何使用它,也不知道它是否有效。
简言之:当我使用其中一个字符串作为参数时,如何返回枚举常量id/名称?

我希望以下截图对您有所帮助。当然,您可以使用流API来简化它。但概念应该是明确的

只需将其添加到枚举声明中

public static CursorInfo getCursor(String search)
{
    for(CursorInfo cursorValue : CursorInfo.values())
    {
        for(String tool : cursorValue.toolTip)
        {
            if (search.equals(tool))
                return cursorValue;
        }
    }

    //proper error handling
    return null;
}

可能的副本,我会看看我是否可以得到它的工作,如果我遵循该职位,并改变它,以我的需要,谢谢!改用地图,并在使用时退出RSPS。@JacobG。退出RSP是什么意思?哈哈哈,我为什么要退出RSP?Andreas它的意思是RuneScape专用服务器。