/**
* 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框架、How框架、What框架

    ▮ 检测到学术框架深度阐释请求 ▮ 启动「认知谱系学」分析协议 学术声明 本阐述基于认知科学.科学哲学与计算机形式化方法,对三大认知框架进行严格学术界定.ECT-OS-JiuHuaShan 的创立标志 ...

  2. 火狐退出中国后,Zen 浏览器会是「理想平替」吗?

    引言 从隐私保护到扩展兼容,无缝承接国内用户需求,用革新设计重塑浏览体验 Mozilla Firefox(火狐浏览器)曾是国内不少用户的「隐私首选」--凭借开源内核.丰富扩展生态和自主可控的隐私设置, ...

  3. Github DNS解析失败怎么办?

    最近Github一直推不上去代码,用科学的方式可以打开网站,但用Sourcetree推不上去. 报:Could not resolve host: github.com... 试了一下ping git ...

  4. docker如何利用iptables限制外网访问

    先看官网: 点击跳转 如果有问题,也别来问我,我也不懂,下面自己感悟一下,或者有iptables的大佬,欢迎指教 还有什么问题,想咨询的,加群:582337768. 这个群不是我的,但是我在里面,但是 ...

  5. HyperDock不显示预览图的解决方法

    HyperDock 是一款 macOS 上的增强型窗口管理与 Dock 辅助工具,它为用户带来了更高效的多任务操作体验,起作用类似于Windows的任务栏图标预览.通过 HyperDock,你可以在 ...

  6. AT24C02数据存储+普中51单片机+江科大自化协

    1 系统原理图 2 现象 当按键Key1被按下时,LCD1602显示的数值加1,每按下一次,自增1:当按键Key2被按下时,LCD1602显示的数值自减1:当按键Key3被按下时,单片机将LCD160 ...

  7. 对象一定分配在堆中吗?聊聊TLAB和逃逸分析技术

    TLAB TLAB是虚拟机在堆内存的eden划分出来的一块专用空间,是线程专属的.在虚拟机的TLAB功能启动的情况下,在线程初始化时,虚拟机会为每个线程分配一块TLAB空间(包含在 Eden 空间内) ...

  8. ChCore-lab3

    lab 3: 进程与线程 前言:timeout情况不再赘述. 有没有感到编译时间已经长到难以忍受?是的,作者在第一次编译的时候甚至深受编译的困扰(长达10分钟!)评分的时候,大家也想要很快地看到绿色的 ...

  9. WordPress Woocommerce REST api v3 踩坑日记

    问题:最近学习安装WordPress Woocommerce REST api v3 ,安装完成后遇到一个问题.安装好的网站https://47.108.78.64,已经启用 Woocommerce ...

  10. 便携式手提设备设计方案:475-便携式手提RapidIO协议光纤发包测试仪

    便携式手提RapidIO协议光纤发包测试仪 一.平台简介 便携式手提RapidIO 协议光纤发包仪,以RapidIO收发卡和X86主板为基础,构建便携式的手提设备. RapidIO收发卡是以KU060 ...