简体   繁体   English

Java-解析字符串中的枚举的泛型函数

[英]Java - Generic function to parse enums from strings

I need to create a generic function that will parse enums from strings, but i'm not sure about the syntax to use. 我需要创建一个通用函数,该函数将从字符串中解析枚举,但是我不确定要使用的语法。

This doesn't work, but it illustrate what i want to do : 这不起作用,但是它说明了我想做什么:

public <E extends Enum<E>> getEnum( some params, <E extends Enum<E>> defaultVal )
{
    // Some stuff

    return E.valueOf( enumAsString );
}

What is wrong in my syntax please ? 请问我的语法有什么问题? Thank you :) 谢谢 :)

EDIT : Also how do i use this ? 编辑:另外我该如何使用? In C++ i would do SomeEnum e = getEnum<SomeEnum>( ... ); 在C ++中,我将执行SomeEnum e = getEnum<SomeEnum>( ... );

EDIT : 编辑:

Let

enum EnumA
{
    A_A, A_B, A_C
};

enum EnumB
{
    B_A, B_B, B_C
};

I would like to do : 我想要做 :

String enumAsStr = "A_B";
EnumA ea = getEnum< EnumA >( enumAsStr, "A_A" );

enumAsStr = "B_C";
EnumB eb = getEnum< EnumB >( enumAsStr, "B_A" );

You could do something like 你可以做类似的事情

public <E extends Enum<E>> E getEnum( String text, Class<E> klass){
   return Enum.valueOf(klass, text );
}

So, for instance if there is an enum Letter 因此,例如,如果有一个枚举字母

public enum Letter { A, B, C}

You could use it like this: 您可以这样使用它:

Letter someLetter = getEnum("A", Letter.class);
System.out.println(someLetter); //A

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM