Java code lib 输出对象所有属性值
/**
* 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 输出对象所有属性值的更多相关文章
- java 获取实体类对象属性值的方法
在java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到 ...
- python 打印对象所有属性值
from pprint import pprint pprint (vars(your_object)) 另外查看所有属性名用.__dict__
- 【随笔】Java处理异常输出对象Exception,转为String输出
声明:这段代码也是从网上摘抄的,当时忘记记录地址了,此为转载,勿怪 public static String handleException(Exception e) { StringBuffer m ...
- easyUIDataGrid对象返回值
import java.util.List; /** * easyUIDataGrid对象返回值 * <p>Title: EasyUIResult</p> * <p> ...
- java 如何正确的输出集合或者对象的值
java 如何正确的输出集合或者对象的值 一般out.println(Object) 和 System.out.println(Object),其中输出的都是Object.toString()方法.重 ...
- Java 使用反射拷贝对象一般字段值
在<Java解惑>上面看到第八十三例--诵读困难者,要求使用非反射实现单例对象的拷贝.查阅了部分资料,先实现通过反射拷贝对象. 1. 编写需要被拷贝的对象Person package co ...
- Java中直接输出一个类的对象
例如 package com.atguigu.java.fanshe; public class Person { String name; private int age; public Strin ...
- java中两个对象间的属性值复制,比较,转为map方法实现
package com.franson.study.util; import java.lang.reflect.InvocationTargetException; import java.lang ...
- Java的Object.hashCode()的返回值到底是不是对象内存地址?
关于这个问题,查阅了网上的资料,发现证明过程太繁琐,这里我用了反证法. java.lang.Object.hashCode()的返回值到底是不是对象内存地址? hashCode契约 说到这个问题,大家 ...
- Java反射机制调用对象的方法 —— 将一个对象的属性值赋值给另一个对象的属性
模拟一个场景: 众所周知,EasyExcel导出Excel文档是依赖于注解完成的,在实体类需要导出的属性上面加上注解,导出的时候会自动识别该属性. 假如我们现在需要导出用户的信息,又不想污染原本的实体 ...
随机推荐
- Why框架、How框架、What框架
▮ 检测到学术框架深度阐释请求 ▮ 启动「认知谱系学」分析协议 学术声明 本阐述基于认知科学.科学哲学与计算机形式化方法,对三大认知框架进行严格学术界定.ECT-OS-JiuHuaShan 的创立标志 ...
- 火狐退出中国后,Zen 浏览器会是「理想平替」吗?
引言 从隐私保护到扩展兼容,无缝承接国内用户需求,用革新设计重塑浏览体验 Mozilla Firefox(火狐浏览器)曾是国内不少用户的「隐私首选」--凭借开源内核.丰富扩展生态和自主可控的隐私设置, ...
- Github DNS解析失败怎么办?
最近Github一直推不上去代码,用科学的方式可以打开网站,但用Sourcetree推不上去. 报:Could not resolve host: github.com... 试了一下ping git ...
- docker如何利用iptables限制外网访问
先看官网: 点击跳转 如果有问题,也别来问我,我也不懂,下面自己感悟一下,或者有iptables的大佬,欢迎指教 还有什么问题,想咨询的,加群:582337768. 这个群不是我的,但是我在里面,但是 ...
- HyperDock不显示预览图的解决方法
HyperDock 是一款 macOS 上的增强型窗口管理与 Dock 辅助工具,它为用户带来了更高效的多任务操作体验,起作用类似于Windows的任务栏图标预览.通过 HyperDock,你可以在 ...
- AT24C02数据存储+普中51单片机+江科大自化协
1 系统原理图 2 现象 当按键Key1被按下时,LCD1602显示的数值加1,每按下一次,自增1:当按键Key2被按下时,LCD1602显示的数值自减1:当按键Key3被按下时,单片机将LCD160 ...
- 对象一定分配在堆中吗?聊聊TLAB和逃逸分析技术
TLAB TLAB是虚拟机在堆内存的eden划分出来的一块专用空间,是线程专属的.在虚拟机的TLAB功能启动的情况下,在线程初始化时,虚拟机会为每个线程分配一块TLAB空间(包含在 Eden 空间内) ...
- ChCore-lab3
lab 3: 进程与线程 前言:timeout情况不再赘述. 有没有感到编译时间已经长到难以忍受?是的,作者在第一次编译的时候甚至深受编译的困扰(长达10分钟!)评分的时候,大家也想要很快地看到绿色的 ...
- WordPress Woocommerce REST api v3 踩坑日记
问题:最近学习安装WordPress Woocommerce REST api v3 ,安装完成后遇到一个问题.安装好的网站https://47.108.78.64,已经启用 Woocommerce ...
- 便携式手提设备设计方案:475-便携式手提RapidIO协议光纤发包测试仪
便携式手提RapidIO协议光纤发包测试仪 一.平台简介 便携式手提RapidIO 协议光纤发包仪,以RapidIO收发卡和X86主板为基础,构建便携式的手提设备. RapidIO收发卡是以KU060 ...