SmartBaseEnumUtil.java 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package net.lab1024.smartadmin.util;
  2. import net.lab1024.smartadmin.common.domain.BaseEnum;
  3. /**
  4. * 枚举工具类
  5. *
  6. * @author listen
  7. * @date 2017/10/10 18:17
  8. */
  9. public class SmartBaseEnumUtil {
  10. /**
  11. * 校验int类型的参数与枚举类比较是否合法
  12. *
  13. * @param value 参数
  14. * @param enumClass 枚举类必须实现BaseEnum接口
  15. * @return boolean
  16. * @Author listen
  17. */
  18. public static boolean checkEnum(Integer value, Class<? extends BaseEnum> enumClass) {
  19. if (null == value) {
  20. return false;
  21. }
  22. BaseEnum[] enums = enumClass.getEnumConstants();
  23. for (BaseEnum baseEnum : enums) {
  24. if (baseEnum.equalsValue(value)) {
  25. return true;
  26. }
  27. }
  28. return false;
  29. }
  30. /**
  31. * 获取枚举类的说明 value : info 的形式
  32. *
  33. * @param enumClass
  34. * @return String
  35. */
  36. public static String getEnumDesc(Class<? extends BaseEnum> enumClass) {
  37. BaseEnum[] enums = enumClass.getEnumConstants();
  38. // value : info 的形式
  39. StringBuilder sb = new StringBuilder();
  40. for (BaseEnum baseEnum : enums) {
  41. sb.append(baseEnum.getValue() + ":" + baseEnum.getDesc() + ",");
  42. }
  43. return sb.toString();
  44. }
  45. /**
  46. * 获取与int Code相匹配的枚举类的info
  47. *
  48. * @param value 参数
  49. * @param enumClass 枚举类必须实现BaseEnum接口
  50. * @return String 如无匹配枚举则返回null
  51. */
  52. public static String getEnumDescByValue(Integer value, Class<? extends BaseEnum> enumClass) {
  53. BaseEnum[] enums = enumClass.getEnumConstants();
  54. for (BaseEnum baseEnum : enums) {
  55. if (baseEnum.equalsValue(value)) {
  56. return baseEnum.getDesc();
  57. }
  58. }
  59. return null;
  60. }
  61. /**
  62. * 根据int类型的参数与获取枚举类的实例
  63. *
  64. * @param value 参数
  65. * @param enumClass 枚举类必须实现BaseEnum接口
  66. * @return BaseEnum 无匹配值返回null
  67. * @Author listen
  68. */
  69. public static <T extends BaseEnum> T getEnumByValue(Object value, Class<T> enumClass) {
  70. T[] enums = enumClass.getEnumConstants();
  71. for (T baseEnum : enums) {
  72. if (baseEnum.equalsValue(value)) {
  73. return baseEnum;
  74. }
  75. }
  76. return null;
  77. }
  78. }