Android 获取类成员值的方法

在开发的过程中,可能需要方便的获取里面所有字段值,可以用这个方法快速获取所有成员的 name, value

java 复制代码
public static void printAllInfo(String tag, Object object) {
    StringBuilder sb = new StringBuilder();
    Field[] fields = object.getClass().getDeclaredFields();
    for (Field field : fields) {
        field.setAccessible(true);
        try {
            Object value = field.get(object);
            if (value instanceof ObservableField<?>) {
                sb.append(field.getName() + ":" + ((ObservableField<?>) value).get()).append("\n");
            } else if (value instanceof ObservableBoolean) {
                sb.append(field.getName() + ":" + ((ObservableBoolean) value).get()).append("\n");
            } else if (value instanceof ObservableInt) {
                sb.append(field.getName() + ":" + ((ObservableInt) value).get()).append("\n");
            } else if (value instanceof ObservableFloat) {
                sb.append(field.getName() + ":" + ((ObservableFloat) value).get()).append("\n");
            }  else if (value instanceof MutableLiveData) {
                sb.append(field.getName() + ":" + ((MutableLiveData) value).getValue()).append("\n");
            } else if (value instanceof List<?>) {
                if (((List<?>) value).isEmpty()) {
                    sb.append(field.getName() + ":[]").append("\n");
                } else {
                    sb.append(field.getName() + ":" + GsonUtils.toJson(value)).append("\n");
                }
            } else if (value instanceof BindingCommand) {
                sb.append(field.getName() + ":Event").append("\n");
            } else if (value instanceof int[]) {
                sb.append(field.getName() + ":" + Arrays.toString((int[]) value)).append("\n");
            } else {
                sb.append(field.getName() + ":" + value).append("\n");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    PrintMsg.d(tag + sb);
}
相关推荐
Cobyte几秒前
从 JavaScript 的角度理解 Python 语法
前端
travel_wsy2 分钟前
vue Pinia 状态管理库
前端·pinia
巫山老妖4 分钟前
📐 Embedding向量化:AI如何「理解」语义?万物皆可向量!
前端
巫山老妖4 分钟前
🤖 AI Agent智能体:从「聊天机器人」到「数字员工」的关键跨越!
前端
软希网分享源码4 分钟前
中英双语言量化交易投资源码/跟单搬砖区块链交易所源码/前端uniapp纯源码+后端
前端·uni-app·区块链·中英双语言量化交易投资源码
巫山老妖5 分钟前
🔌 MCP协议:AI工具生态的「USB标准」,数千个工具一键接入!
前端
巫山老妖7 分钟前
🎯 AI Skills技能体系:让Agent拥有「专业技能」,可复用可进化!
前端
巫山老妖7 分钟前
⚠️ AI幻觉:当AI「一本正经地胡说八道」,我们该怎么办?
前端
巫山老妖8 分钟前
🧠 LLM大语言模型:AI世界的「概率引擎」,你真的了解它吗?
前端
巫山老妖8 分钟前
📚 知识库工程:RAG落地的「最后一公里」,数据质量才是王道!
前端