用Java反射输出对象的所有属性的值
获取对象的类类型
Class cls = obj.getClass();
用类类型获取属性数组
getFields()获取的是共有属性
getDeclaredFields()可以获取所有属性
Field[] fields = cls.getDeclaredFields();
遍历属性数组,将属性设置为外部可见,然后输出
for (Field field:fields) {
field.setAccessible(true);
try {
System.out.println(field.getName()+":"+field.get(obj));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
完整代码:
PrintAllFields.java
import java.lang.reflect.Field;
public class PrintAllFields {
public static void printAllFields(Object obj){
Class cls=obj.getClass();
Field[] fields=cls.getDeclaredFields();
System.out.println("共有"+fields.length+"个属性");
for (Field field:fields) {
field.setAccessible(true);
try {
System.out.println(field.getName()+":"+field.get(obj));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Student student=new Student();
student.setId(2014222);
student.setName("李利");
student.setAge(22);
student.setSex(1);
student.setGrade(3);
PrintAllFields.printAllFields(student);
}
}
Student.java
public class Student {
private int id;
private String name;
private int age;
private int grade;
private int sex;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
}
用Java反射输出对象的所有属性的值的更多相关文章
- Java反射判断对象实例所有属性是否为空
https://www.jb51.net/article/201647.htm public static Boolean ObjectAllFieldsEmpty(Object obj) throw ...
- Java反射获取对象VO的属性值(通过Getter方法)
有时候,需要动态获取对象的属性值. 比如,给你一个List,要你遍历这个List的对象的属性,而这个List里的对象并不固定.比如,这次User,下次可能是Company. e.g. 这次我需要做一个 ...
- Java 反射 Class对象
Java 反射 Class对象 @author ixenos 关键字:RTTI.动态绑定.动态加载.获得Class引用.泛型Class引用.newInstance的坑.JVM中的泛型类型信息 RTTI ...
- 【译】2. Java反射——Class对象
原文地址:http://tutorials.jenkov.com/java-reflection/classes.html ====================================== ...
- Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别
Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别 在工作中遇到一个问题,就是你需要去判断某个字符串是不是对象的某个成员属性名,然后根据判断结果 ...
- Java反射 - 2(对象复制,父类域,内省)
为什么要复制对象?假设有个类Car,包含name,color2个属性,那么将car1对象复制给car2对象,只需要car2.setName(car1.getName)与car2.setColor(ca ...
- java反射构建对象和方法的反射调用
Java反射技术应用广泛,其能够配置:类的全限定名,方法和参数,完成对象的初始化,设置是反射某些方法.可以增强java的可配置性. 1.1 通过反射构建对象(无参数): 例如我们使用 ReflectS ...
- java反射获取Object的属性和值
在看反射顺便做个笔记,目前知道的反射的Object都是要有对象的也就是实体Bean. import java.lang.reflect.Field; import java.util.ArrayLis ...
- Java反射交换两个整型变量的值
在一次面试中,做了这么一道题"交换两个整型变量的值",当时看到这个题目之后,会心一笑,这也太简单了--直接使用中间变量交换不就可以了吗?但是,面试官却说不需要返回值,在调用的地方, ...
随机推荐
- 基于bootstrap的下拉选择 ( combox ) 输入 ( input ) 功能
需求: 在编辑数据的时候,既可以让用户输入,也可以从下拉框中选择 思路: 参照下面的效果图,因为是表格里面的数据,所以下拉框触发按钮和输入框分别为1列,输入列可以设置是否输入(方法:<td co ...
- 转型IT学什么语言好,学编程语言为何要重视代码规范?
造价转IT需要注意什么,先学什么比较好?属于零基础,2019毕业,三本学校,男.自己的想法是先以副业来学习,在合适的时候转入it行业.1.以副业来学的话应该先学习什么比较好?2.如果要直接找工作的话先 ...
- TensorFlow——tensorflow编程基础
0.tensorflow中的模型运行基础 tensorflow的运行机制属于定义和运行相分离,在操作层面可以抽象成两种:模型构建和模型运行. 在模型构建中的常见概念: 张量(tensor):数据,即某 ...
- map set vector用法小总结
1.Map 定义 #include<map> map<string,bool> mp; 插入 mp[s]=; mp.insert(make_pair(s,)); 输出 cout ...
- 软工作业-14组铁大FaceBook网站使用体验
铁大facebook是面向铁道大学学生的一个空间网站,空间界面十分朴素,灰色的色调.基本可以满足日常的发动态需求,但也存在一些问题: 比如发动态不是很方便,必须要进入到某一个空间才能发动态 .就有一些 ...
- NanoProfiler-Step1翻译
NanoProfiler NanoProfiler is a light weight profiling library written in C# which requires (NanoProf ...
- [bzoj2326] [洛谷P3216] [HNOI2011] 数学作业
想法 最初的想法就是记录当前 \(%m\) 值为cur,到下一个数时 \(cur=cur \times 10^x + i\) n这么大,那就矩阵乘法呗. 矩阵乘法使用的要点就是有一个转移矩阵会不停的用 ...
- Windows 7原版映像中添加usb3.0驱动
最近用软碟通制作了一个win7原版映像,但是在装新系统的时候发现了一个问题,进入安装界面后,显示没有找到驱动器,但是明明是差了U盘的,通过“shift+f12”调出命令行窗口,输入disk list命 ...
- GP工作室—团队项目总结
GP工作室-团队项目总结 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/ 这个作业要求在哪里 ...
- mysql 常用sql操作总结
批量修改表的引擎,从MyISAM修改为InnoDB 生成执行语句: select CONCAT('alter table ',table_name,' engine=InnoDB;') FROM in ...