Not without adding some code yourself.

I have done this many times when values from some JSON string from a server 
map to Enum values but these JSON strings don't map onto the names of the 
Enum values directly.
I usually added a public static method to my Enum class, a factory that 
produces its values based upon a String value:

public enum Type {
    ....
    ....

    public static Type get(String typeStr) {
        for (Type value : Type.values()) {
            if (value.getType().equals(typeStr)) {
                return value;
            }    
        }
        return null;
    }
}

And now, as an example, in any other part of the code, you can just call 
Type.get("event/one") and get the correct Type value back.

On Friday, July 18, 2014 1:35:27 PM UTC-4, sweety fx wrote:
>
> Is there a way to pass enum value from the string?
> So that I can make event.getType() to return enum of the string instead of 
> returning string?
>
>
> On Friday, July 18, 2014 1:22:45 PM UTC-4, Streets Of Boston wrote:
>>
>> Yep, you can't do that. 
>>
>> If 'event' is of type 'Type', then you could do "switch(event) { case 
>> TYPE_ONE: .... case TYPE_TWO: ...} ...", because Enum values are considered 
>> to be constant.
>>
>> Instead, change your switch statement to "if (...) else if (...) { ... } 
>> else if (...) { ... } else if (...) { ...} .. ..." statements. A bit more 
>> typing, but works well :)
>>
>> On Friday, July 18, 2014 11:57:03 AM UTC-4, sweety fx wrote:
>>>
>>> *I have the below enum:*
>>>
>>> public enum Type {
>>>
>>>     TYPE_ONE("event/one");
>>>     TYPE_TWO("event/two");
>>>
>>>     private Type(String mType){
>>>         this.mType = mType;
>>>     }
>>>     private final String mType;
>>>
>>>     public String getType(){return mType;}
>>> }
>>>
>>> *I am trying to compare in Switch/Case:*
>>>
>>>  switch (event.getType()){
>>>                                 case Type.TYPE_ONE.getType():  // says 
>>> "Constant expression required"
>>>                                     Do something:
>>>                                  case Type.TYPE_TWO.getType(): //  says 
>>> "Constant expression required"
>>>                                     Do something;
>>>                             }
>>>
>>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to