-
2019-12-26 14:51:48
public void reflect(Object obj) throws Exception{ Class cls = obj.getClass(); Field[] fields = cls.getDeclaredFields(); for(int i=0; i<fields.length; i++){ Field f = fields[i]; f.setAccessible(true); System.out.println("属性名:" + f.getName() + " 属性值:" + f.get(e)); } }
更多相关内容 -
java反射遍历实体类属性和类型,并赋值和获取值的简单方法
2020-08-30 20:27:38下面小编就为大家带来一篇java反射遍历实体类属性和类型,并赋值和获取值的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
Java中遍历实体类(处理MongoDB)
2021-06-07 11:19:17因此,对于遍历实体类能够与数据库中的一行数据对应起来。我是使用的环境是Spring boot,访问的数据库时MongoDB实体类遍历://java中遍历实体类,获取属性名和属性值public static void testReflect(Object model) ...在实际过程中,经常要将实体类进行封装,尤其是处理数据库的过程中;因此,对于遍历实体类能够与数据库中的一行数据对应起来。
我是使用的环境是Spring boot,访问的数据库时MongoDB
实体类遍历:
//java中遍历实体类,获取属性名和属性值
public static void testReflect(Object model) throws Exception{
for (Field field : model.getClass().getDeclaredFields()) {
field.setAccessible(true);
System.out.println(field.getName() + ":" + field.get(model) );
}
}
pom.xml需要配依赖
commons-beanutils
commons-beanutils
1.9.3
我项目中的代码:
public String reflectData(DianpingShopEntity entry) throws Exception{
StringBuilder stringBuilder = new StringBuilder();
for (Field field : entry.getClass().getDeclaredFields()) {
field.setAccessible(true);
stringBuilder.append(field.get(entry)).append(',');
}
return stringBuilder.deleteCharAt(stringBuilder.length()-1).toString();
}
public String reflectTitle(DianpingShopEntity entry) throws Exception{
StringBuilder stringBuilder = new StringBuilder();
for (Field field : entry.getClass().getDeclaredFields()) {
field.setAccessible(true);
stringBuilder.append(field.getName()).append(',');
}
return stringBuilder.deleteCharAt(stringBuilder.length()-1).toString();
}
java中遍历实体类,获取属性名和属性值
方式一(实体类): //java中遍历实体类,获取属性名和属性值 public static void testReflect(Object model) throws Exception{ for ...
java中遍历实体类属性和类型
public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...
java中遍历实体类属性和类型,属性值
public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...
Java中的实体类--Serializable接口、transient 关键字
在java中,实体类是一个非常重要的概念,我们可以在实体类中封装对象.设置其属性和方法等.关于实体类,也经常涉及到适配器模式.装饰者模式等设计模式.那么在实际代码开发中,关于实体类的注意事项有哪些呢? ...
java反射遍历实体类属性和类型,并赋值和获取值
/* * GetModelNameAndType.java * Version 1.0.0 * Created on 2017年12月15日 * Copyright ReYo.Cn */ packag ...
java中为什么实体类需要实现序列化
当客户端访问某个能开启会话功能的资源,web服务器就会创建一个HTTPSession对象,每个HTTPSession对象都会占用一定的内存,如果在同一个时间段内访问的用户太多,就会消耗大量的服务器内存 ...
java中从实体类中取值会忽略的的问题
在我们java Map中通过get来取值时会忽略的问题是:如果取得一个空值null时,那么.toString()时就会出错,而且不知道是什么原因. 现在我给的具体方法是用条件表达式先判断一下. 例: ...
java中循环遍历实体类的属性和数据类型以及属性值
package com.walkerjava.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTarg ...
java中如何遍历实体类的属性和数据类型以及属性值
package com.walkerjava.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTa ...
随机推荐
Qt——动态库的创建和使用
一.动态库是什么 很多人写程序的人都见过.lib和.dll文件,对动态库也略有耳闻. 生成动态库后可以得到两个文件,后缀名分别是.lib以及.dll. 简而言之,.lib称为导入库,相当于头文件:.d ...
利用css做扇形
html和css每一块的边边角角都是直来直去,除了border-raius,要怎么做扇形了?当然,你如果只想要得到直角扇形,和半圆,那就很简单?那么做小于180的直角扇形,如何做了(大于180的直角无 ...
Pending Statistics
Starting with the 11g Release 1 (11.1), when gathering statistics, you have the option to automatica ...
MySQL配置管理
数据库的链接: 获取项目结果集和链接: package Dao; import java.sql.Connection; import java.sql.ResultSet; import java. ...
flask-login ----系统权限设计部分小结
tips: 事实证明.开发是一项苦力活.但是代码只有自己写的才是令人感到放心的.不过仅仅是从开发角度来说.从维护和安全角度来说,当然还是引入模块比较爽 但是引入的模块总会有一些问题.碰到的最大问题就是 ...
●Joyoi Dotp 驱逐猪猡
题链: http://www.joyoi.cn/problem/tyvj-2610题解: 期望dp,高斯消元 对于每一种到达i点的方案,都存在一个概率p, 令dp[i]表示到达i点的期望次数,那么容易 ...
java基础中this,super
this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类. this的用法就不累赘的说 ...
Java开发环境配置(1)--tool准备
工具准备:1.eclipse-mars开发工具必须安装 2.XAMPP-环境集成了MYSQL,APACHE,TOMCAT建议安装 3.TOMCAT提供了二个版本(8.0和9.0),建议安装一个以备不时 ...
MVC架构介绍-序列化属性
实例产品基于asp.net mvc 5.0框架,源码下载地址:http://www.jinhusns.com/Products/Download 在设计时,如果能够预测到一些实体可能在后续的研发(或二 ...
mysql操作查询结果case when then用法举例
举例1: 使用该查询,得出iFavoriteID,iFavUserType ,cUser,iArticleID,dFavoriteTime五个字段的值: SELECT iFavoriteID,CASE ...
-
java中遍历实体类属性和类型
2021-02-28 07:15:50//获取实体类的所有属性,返回Field数组 for(int j=0 ; j String name = field[j].getName(); //获取属性的名字System.out.println("attribute name:"+name); name= name.substring(0,1).toUpperCase()+name....public static void testReflect(Object model) throwsNoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
Field[] field= model.getClass().getDeclaredFields(); //获取实体类的所有属性,返回Field数组
for(int j=0 ; j
String name = field[j].getName(); //获取属性的名字System.out.println("attribute name:"+name);
name= name.substring(0,1).toUpperCase()+name.substring(1); //将属性的首字符大写,方便构造get,set方法
String type = field[j].getGenericType().toString(); //获取属性的类型
if(type.equals("class java.lang.String")){ //如果type是类类型,则前面包含"class ",后面跟类名
Method m = model.getClass().getMethod("get"+name);
String value= (String) m.invoke(model); //调用getter方法获取属性值
if(value != null){
System.out.println("attribute value:"+value);
}
}if(type.equals("class java.lang.Integer")){
Method m= model.getClass().getMethod("get"+name);
Integer value=(Integer) m.invoke(model);if(value != null){
System.out.println("attribute value:"+value);
}
}if(type.equals("class java.lang.Short")){
Method m= model.getClass().getMethod("get"+name);
Short value=(Short) m.invoke(model);if(value != null){
System.out.println("attribute value:"+value); }
}if(type.equals("class java.lang.Double")){
Method m= model.getClass().getMethod("get"+name);
Double value=(Double) m.invoke(model);if(value != null){
System.out.println("attribute value:"+value);
}
}if(type.equals("class java.lang.Boolean")){
Method m= model.getClass().getMethod("get"+name);
Boolean value=(Boolean) m.invoke(model);if(value != null){
System.out.println("attribute value:"+value);
}
}if(type.equals("class java.util.Date")){
Method m= model.getClass().getMethod("get"+name);
Date value=(Date) m.invoke(model);if(value != null){
System.out.println("attribute value:"+value.toLocaleString());
}
}
}
}
-
java中如何遍历实体类的属性和数据类型以及属性值
2021-03-01 10:31:13import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Date;/**** 遍历实体类的属性和数据类型以及属性值** @author L...package com.walkerjava.test;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Date;
/***
* 遍历实体类的属性和数据类型以及属性值
*
* @author LiBaozhen
* @date 2013-1-4 上午10:25:02
* @company
* @version v1.3
* @see 相关类
* @since 相关/版本
*/
public class ReflectTest {
public static void reflectTest(Object model) throws NoSuchMethodException,
IllegalAccessException, IllegalArgumentException,
InvocationTargetException {
// 获取实体类的所有属性,返回Field数组
Field[] field = model.getClass().getDeclaredFields();
// 遍历所有属性
for (int j = 0; j < field.length; j++) {
// 获取属性的名字
String name = field[j].getName();
// 将属性的首字符大写,方便构造get,set方法
name = name.substring(0, 1).toUpperCase() + name.substring(1);
// 获取属性的类型
String type = field[j].getGenericType().toString();
// 如果type是类类型,则前面包含"class ",后面跟类名
System.out.println("属性为:" + name);
if (type.equals("class java.lang.String")) {
Method m = model.getClass().getMethod("get" + name);
// 调用getter方法获取属性值
String value = (String) m.invoke(model);
System.out.println("数据类型为:String");
if (value != null) {
System.out.println("属性值为:" + value);
} else {
System.out.println("属性值为:空");
}
}
if (type.equals("class java.lang.Integer")) {
Method m = model.getClass().getMethod("get" + name);
Integer value = (Integer) m.invoke(model);
System.out.println("数据类型为:Integer");
if (value != null) {
System.out.println("属性值为:" + value);
} else {
System.out.println("属性值为:空");
}
}
if (type.equals("class java.lang.Short")) {
Method m = model.getClass().getMethod("get" + name);
Short value = (Short) m.invoke(model);
System.out.println("数据类型为:Short");
if (value != null) {
System.out.println("属性值为:" + value);
} else {
System.out.println("属性值为:空");
}
}
if (type.equals("class java.lang.Double")) {
Method m = model.getClass().getMethod("get" + name);
Double value = (Double) m.invoke(model);
System.out.println("数据类型为:Double");
if (value != null) {
System.out.println("属性值为:" + value);
} else {
System.out.println("属性值为:空");
}
}
if (type.equals("class java.lang.Boolean")) {
Method m = model.getClass().getMethod("get" + name);
Boolean value = (Boolean) m.invoke(model);
System.out.println("数据类型为:Boolean");
if (value != null) {
System.out.println("属性值为:" + value);
} else {
System.out.println("属性值为:空");
}
}
if (type.equals("class java.util.Date")) {
Method m = model.getClass().getMethod("get" + name);
Date value = (Date) m.invoke(model);
System.out.println("数据类型为:Date");
if (value != null) {
System.out.println("属性值为:" + value);
} else {
System.out.println("属性值为:空");
}
}
}
}
}
Java反射 在只知道类名的情况下,怎样给其中的私有属性赋值
利用反射能
//假设类名为A
// 实例化类
A p = new A();
// 获取class
Class c = p.getClass();
// 获取该类所有的字段
Field[] fields = c.getDeclaredFields();
// 遍历赋值
for (int i = 0; i < fields.length; i++) {
String filedName = fields[i].getName();
// AccessibleTest类中的成员变量为private,故必须进行此操作
fields[i].setAccessible(true);
// 判断类型
Class> type=fields[i].getType();
//获取字段类型
String typeName=type.getName();
System.out.println(type.getName());
// 对字段进行赋值 第一个参数为对象引用第二个参数为要附的值
//如果为字符串类型
if("java.lang.String".equals(typeName)){
fields[i].set(p, "1");
}
//如果为日期类型
else if("java.util.Date".equals(typeName)){
fields[i].set(p, new Date());
}
else{
fields[i].set(p, 1);
}
}
-
java遍历实体类属性值
2021-03-07 00:45:16()方法,在列表的首部插入元素 D、在对这个集合的元素执行遍历操作时,效率比较高 9、在 java 中,关于 HashMap 类的描述,以下说法错误的是( )(选择一项) A、......13.包装器类型包括哪些类,有什么作用? 14. 请说明 ... -
java中循环遍历实体类的属性和数据类型以及属性值
2021-02-12 16:00:13import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Date;/**** 遍历实体类的属性和数据类型以及属性值** @author L... -
使用Java反射机制遍历实体类的属性和类型
2021-03-22 13:49:17此方法遍历实体类所有属性,对于常用的java包装类类型和java.util.Date,输出其属性值,如果有其它类型,则需自己扩展。public static void testReflect(Object model) throws NoSuchMethodException, ... -
遍历实体类属性并赋值
2021-03-15 02:50:55//遍历所有属性 for (int i = 0; i ; i++) { String type = field[i].getGenericType().toString(); //BigDecimal类型 if(type.equals("class java.math.BigDecimal")){ //获取属性的名字 String name = field[i].... -
java中遍历实体类属性字段及值
2019-11-19 10:16:32https://blog.csdn.net/dongzhouzhou/article/details/8659836 https://blog.csdn.net/bwgang/article/details/8475076 -
java遍历实体类的属性和值
2018-09-21 10:28:58实体类: public class User implements Serializable { private static final long serialVersionUID = 1L; private String pkid; private String userName; private String p... -
JAVA-遍历实体类属性
2018-09-04 09:01:16"转义请求参数-实体类转换失败" , e1) ; } } //System .out .println ( "属性名:" + f .getName () + " 属性值:" + f .get (e)) ; } } public static void main(String args[]){ DiffConfigBean b =... -
遍历实体类属性和类型及相关操作
2020-06-17 15:30:58* @param model 为实体类 * @author kou 为传入参数 */ public class GetModelNameAndType { public static void testReflect(Object model) throws SecurityException, NoSuchMethodException, ... -
java反射遍历实体类属性和类型并取值赋值
2018-11-05 14:26:08运用java反射为实体类赋值 /** * 后台插入workerinfo时,插入sysuser表 * state = 0新增 1修改 * @return */ public int insertOrUpdateSysuser(WorkerInfo workerInfo,String state) { SysUser sysUser = new ... -
java中遍历实体类,获取属性名和属性值
2019-03-12 11:56:30原文地址:...方式一(实体类): //java中遍历实体类,获取属性名和属性值 public static void testReflect(Object model) throws Exception{ for (Field field : model.getClass... -
java反射遍历实体类属性和类型,并赋值和获取值
2019-10-05 19:49:49获取实体类的所有属性,返回Field数组 Field[] field = model.getClass().getDeclaredFields(); // 获取属性的名字 String[] modelName = new String[field.length]; String[] modelType = new ... -
java中遍历实体类属性和类型,属性值
2017-05-10 17:34:00//获取实体类的所有属性,返回Field数组 for(int j=0 ; j; j++){ //遍历所有属性 String name = field[j].getName(); //获取属性的名字 System.out.println("attribute name:"+name); name = name.... -
遍历实体类
2011-08-17 17:20:55此方法遍历实体类所有属性,对于常用的java包装类类型和java.util.Date,输出其属性值,如果有其它类型,则需自己扩展。 public static void testReflect(Object model) throws NoSuchMethodException, I... -
Java遍历实体类,实体类属性转换为url参数
2018-12-17 13:50:49遍历Java实体类属性及值 核心代码 /** * * @Title: getPostParams * @Description: 将实体类clazz的属性转换为url参数 * @param clazz 参数实体类 * @return * String */ private String getPostParams... -
反射遍历实体类
2019-10-01 15:53:41如何对比实体类每个属性的前后变化差异? Apple app1 = new Apple(); app1.name = "liu"; app1.pice = "33"; Apple app2 = new Apple(); app2.name = "liu"; ...