Groovy: Few ways to convert string into enum

15 / Apr / 2011 by Amit Jain 2 comments

Many at times, we have a string which needs to be converted into Enum. I will be sharing few options as stated by Mr.Haki, Isa Goksu and in the last the one I discovered during the process. Lets say we have a Enum AccountType as given below :


enum AccountType {
     CHECKING,
     SAVING
}

assert AccountType.CHECKING == "CHECKING" as AccountType

assert AccountType.CHECKING == AccountType.valueOf("CHECKING")
def className = AccountType.class
assert AccountType.CHECKING == Enum.valueOf(className, "CHECKING")

assert AccountType.CHECKING == AccountType["CHECKING"]
String type = "CHECKING"
assert AccountType.CHECKING == AccountType[type]

Cheers!
~~Amit Jain~~
amit@intelligrape.com

http://www.tothenew.com

FOUND THIS USEFUL? SHARE IT

comments (2)

  1. Burt Beckwith

    I would use Enum.valueOf(AccountType.class, “CHECKING”) only if I didn’t know the type of the enum class, e.g. if the class were passed as a parameter to a method. If you know it’s an AccountType you can just use the traditional AccountType.valueOf(‘Checking’) as pointed out in the comments of the post you referenced.

    Reply

Leave a comment -