/**
* Converts an object to a string representation that lists all fields;
* @param obj an object
* @return a string with the object's class name and all filed names and values
*/
public String toString(Object obj) {
if(obj ==null) return "null";
if(visited.contains(obj)) return "...";
visited.add(obj);
Class cl=obj.getClass();
//String
if(cl==String.class) return (String) obj;
//Array
if(cl.isArray()){
String r=cl.getComponentType()+"[]{";
for(int i=0;i< Array.getLength(obj);i++){
if(i>0) r+=",";
Object val=Array.get(obj,i);
if(cl.getComponentType().isPrimitive()) r+=val;
else r+=toString(val);
}
return r+"}";
} String r=cl.getName();
//inspect the fields of this class and all superclass
do{
r+="[";
Field[] fields=cl.getDeclaredFields();
AccessibleObject.setAccessible(fields,true);
//get the names and values of all fields
for(Field f:fields){
if(!Modifier.isStatic(f.getModifiers()))
{
if(!r.endsWith("["))r+=",";
r+=f.getName()+"=";
try
{
Class t=f.getType();
Object val=f.get(obj);
if(t.isPrimitive()) r+=val;
else r+=toString(val);
}
catch (Exception e){
e.printStackTrace();
}
}
}
r+="]";
cl=cl.getSuperclass();
}
while (cl!=null);
return r;
}

Java code lib 输出对象所有属性值的更多相关文章

  1. java 获取实体类对象属性值的方法

    在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到 ...

  2. python 打印对象所有属性值

    from pprint import pprint pprint (vars(your_object)) 另外查看所有属性名用.__dict__

  3. 【随笔】Java处理异常输出对象Exception,转为String输出

    声明:这段代码也是从网上摘抄的,当时忘记记录地址了,此为转载,勿怪 public static String handleException(Exception e) { StringBuffer m ...

  4. easyUIDataGrid对象返回值

    import java.util.List; /** * easyUIDataGrid对象返回值 * <p>Title: EasyUIResult</p> * <p> ...

  5. java 如何正确的输出集合或者对象的值

    java 如何正确的输出集合或者对象的值 一般out.println(Object) 和 System.out.println(Object),其中输出的都是Object.toString()方法.重 ...

  6. Java 使用反射拷贝对象一般字段值

    在<Java解惑>上面看到第八十三例--诵读困难者,要求使用非反射实现单例对象的拷贝.查阅了部分资料,先实现通过反射拷贝对象. 1. 编写需要被拷贝的对象Person package co ...

  7. Java中直接输出一个类的对象

    例如 package com.atguigu.java.fanshe; public class Person { String name; private int age; public Strin ...

  8. java中两个对象间的属性值复制,比较,转为map方法实现

    package com.franson.study.util; import java.lang.reflect.InvocationTargetException; import java.lang ...

  9. Java的Object.hashCode()的返回值到底是不是对象内存地址?

    关于这个问题,查阅了网上的资料,发现证明过程太繁琐,这里我用了反证法. java.lang.Object.hashCode()的返回值到底是不是对象内存地址? hashCode契约 说到这个问题,大家 ...

  10. Java反射机制调用对象的方法 —— 将一个对象的属性值赋值给另一个对象的属性

    模拟一个场景: 众所周知,EasyExcel导出Excel文档是依赖于注解完成的,在实体类需要导出的属性上面加上注解,导出的时候会自动识别该属性. 假如我们现在需要导出用户的信息,又不想污染原本的实体 ...

随机推荐

  1. Why框架,是怎么形成的

    DeepSeek提示语,进入 ECT-OS-JiuHuaShan推理框架:https://orcid.org/0009-0006-8591-1891 ▮ 启动「时空基准」响应协议 宇宙级架构的诞生:W ...

  2. golang的编程规范

    我不配写这个,但是我配转发一下. https://github.com/uber-go/guide 这个规范,每次看都有收获. 主要是7月份好像没啥内容可写了,水一篇

  3. 小明的oj 2025 2月Div.1总结

    确保获奖 1.算法思想维度 问题类型:二分.双指针 错误原因:Check时双指针 l == r 时没有退出,因为题目要求的是二元组个数. 正确思路:排序后,二分小明跟哪个人配对,双指针求出对数,判断是 ...

  4. 星球助手 v1.5.0 更新发布,功能升级超给力!

    亲爱的用户们,星球助手已升级到v1.5.0 版本-本次更新诚意满满,一系列实用功能与优化内容,只为给大家带来更卓越的使用体验.重要更新内容有: 1 按专栏导出帖子,资料整理超轻松 大家都知道,星球里的 ...

  5. 2025 年 PHP 常见面试题整理以及对应答案和代码示例

    2025 年 PHP 常见面试题整理以及对应答案和代码示例 PHP 面试通常会考察基础知识(数组.OOP.错误处理)和现代特性(类型.属性.枚举).关键是要展示你能写出简洁.可预测的代码,同时了解 P ...

  6. 手写板擦写芯片SOT23-6省外围

    概述 KX1401 是一款液晶手写板擦写 芯片,内部集成了升压.擦写驱动.按键 去抖动以及低功耗待机等多个功能模块 KX1401 工作电压范围宽,在 2.1V- 4.2V 范围内都可以工作,输出电压稳 ...

  7. 用智慧PC破局,华为引领产业新方向

    整个PC市场仍处于低迷之中,华为是唯一亮点. 近日,捷孚凯市场咨询(中国)有限公司(以下简称 GFK )发布了 2023 年 7 月份笔记本零售市场报告,中国大陆笔记本电脑零售市场季度销量同比下降 1 ...

  8. 微信小程序Canvas绘制文字(换行和省略号)

    微信小程序Canvas绘制文本时要实现换行和超出部分显示为省略号 主要使用的API(详见微信文档):CanvasContext.measureTextCanvasContext.fillText // ...

  9. Cloudbox工具箱!一款拥有100款工具的超级工具箱!Cloudbox工具箱教程(附下载)

    软件介绍 Cloudbox 工具箱:一款开源免费的 Windows 聚合工具箱,仅 7.6M 大小却集成 198 款工具,涵盖装机检测.系统优化.影音下载等四大类功能,提供绿色免安装软件,能简化装机流 ...

  10. SystemVerilog for Design Edition 2 Chapter 8 Modeling Finite State Machines with SystemVerilog

    SystemVerilog for Design Edition 2 Chapter 8 SystemVerilog enables modeling at a higher level of abs ...