Hello, I have setup a ranks enum with 5 different ranks, I'm storing the rank as an integer in a MySQL DB. I have a method to get the integer from the DB, But I'm trying to figure out how to turn the number into an enum value (See class) Code (Text): package com.nationsmc.core.ranks; import static com.nationsmc.core.utils.Chat.colorMsg; /** * Created by Spencer on 2016-05-23. */ public enum Ranks { DEFAULT(0, colorMsg("&eD"), colorMsg("&eDefault")), HELPER(1, colorMsg("&aH"), colorMsg("&aHelper")), MODERATOR(2, colorMsg("&bM"), colorMsg("&bModerator")), ADMIN(3, colorMsg("&cA"), colorMsg("&cAdministrator")), OWNER(4, colorMsg("&cO"), colorMsg("&cOwner")); private int rankNum; private String letter; private String name; Ranks (int rankNum, String letter, String name) { this.rankNum = rankNum; this.letter = letter; this.name = name; } public int getInt() { return rankNum; } public String getLetter() { return letter; } public String getName() { return name; } }
In the enum class: Code (Java): public static intToRank(Integer i){ for (Ranks r : Ranks.values(){ if (r.getInt() == i) return r; } return null; }
Keep in mind also that Enum#values() creates the array every time the method is called, so you may want to store it in a variable, and reuse that instead.