java类的静态属性值获取

获取某个类实例的静态属性:

public class ErrorCode {

    private String code;
    private String message;

    private ErrorCode(String code, String message) {
        this.code = code;
        this.message = message;
    }

    public String getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    public static final ErrorCode 交易成功 = new ErrorCode("00000", "交易成功");
    public static final ErrorCode 交易失败 = new ErrorCode("00001", "交易失败");
}

遍历获取其静态属性的code和message:

public static void main(String[] args) throws Exception {
        Class<?> ownerClass = Class.forName("com.kayak.frame.ErrorCode");
        Field[] fields = ErrorCode.class.getDeclaredFields();
        for (Field field : fields) {
            int mod = field.getModifiers();
            if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
                Object o = field.get(ownerClass);
                ErrorCode e = (ErrorCode) o;
                System.out.println(e.getCode() + " " + e.getMessage());
            }
        }
    }

打印结果:

00000 交易成功
00001 交易失败

 

如果获取指定的静态属性:

/**
 * 得到某个类的静态属性 java反射机制
 * 
 * @param className
 * @param fieldName
 * @return
 * @throws Exception
 */
public Object getStaticProperty(String className, String fieldName)
        throws Exception {
    Class ownerClass = Class.forName(className);

    Field field = ownerClass.getField(fieldName);

    Object property = field.get(ownerClass);

    return property;
}

 

posted on 2017-07-20 16:26  傻瓜乐园  阅读(1192)  评论(0编辑  收藏  举报

导航