From e59465eaf992f368fb4dfe9aa9d33e244151e550 Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Thu, 27 Oct 2016 19:36:39 +0800 Subject: [PATCH] --- src/org/redkale/service/RetLabel.java | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/org/redkale/service/RetLabel.java b/src/org/redkale/service/RetLabel.java index fa6f76fe7..9f796f2de 100644 --- a/src/org/redkale/service/RetLabel.java +++ b/src/org/redkale/service/RetLabel.java @@ -6,6 +6,8 @@ package org.redkale.service; import java.lang.annotation.*; +import java.lang.reflect.*; +import java.util.*; /** * 用于定义错误码的注解 @@ -15,6 +17,7 @@ import java.lang.annotation.*; * // 30000001 - 99999999 预留给Dev开发系统自身使用 * * 详情见: https://redkale.org + * * @author zhangjx */ @Inherited @@ -24,4 +27,26 @@ import java.lang.annotation.*; public @interface RetLabel { String value(); + + public static abstract class RetLoader { + + public static Map load(Class clazz) { + final Map rets = new HashMap<>(); + for (Field field : clazz.getFields()) { + if (!Modifier.isStatic(field.getModifiers())) continue; + if (field.getType() != int.class) continue; + RetLabel info = field.getAnnotation(RetLabel.class); + if (info == null) continue; + int value; + try { + value = field.getInt(null); + } catch (Exception ex) { + ex.printStackTrace(); + continue; + } + rets.put(value, info.value()); + } + return rets; + } + } }