实例如下:
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Date;
/**
* 获取实体类型的属性名和类型
* @param model 为实体类
* @author kou 为传入参数
*/
public class GetModelNameAndType
{
public static void testReflect(Object model) throws SecurityException,
NoSuchMethodException, IllegalArgumentException,
IllegalAccessException, InvocationTargetException, InstantiationException
{
// 获取实体类的所有属性,返回Field数组
Field[] field = model.getClass().getDeclaredFields();
// 获取属性的名字
String[] modelName = new String[field.length];
String[] modelType = new String[field.length];
for (int i = 0; i < field.length; i++)
{
// 获取属性的名字
String name = field[i].getName();
modelName[i] = name;
// 获取属性类型
String type = field[i].getGenericType().toString();
modelType[i] = type;
//关键。。。可访问私有变量
field[i].setAccessible(true);
//给属性设置
field[i].set(model, field[i].getType().getConstructor(field[i].getType()).newInstance("kou"));
// 将属性的首字母大写
name = name.replaceFirst(name.substring(0, 1), name.substring(0, 1)
.toUpperCase());
if (type.equals("class java.lang.String"))
{
// 如果type是类类型,则前面包含"class ",后面跟类名
Method m = model.getClass().getMethod("get" + name);
// 调用getter方法获取属性值
String value = (String) m.invoke(model);
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());
}
}
}
}
public static void main(String[] args)
{
try
{
testReflect(new VO());
}
catch (SecurityException e)
{
e.printStackTrace();
}
catch (IllegalArgumentException e)
{
e.printStackTrace();
}
catch (NoSuchMethodException e)
{
e.printStackTrace();
}
catch (IllegalAccessException e)
{
e.printStackTrace();
}
catch (InvocationTargetException e)
{
e.printStackTrace();
}
catch (InstantiationException e)
{
e.printStackTrace();
}
}
}
以上这篇java反射遍历实体类属性和类型,并赋值和获取值的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# java反射给实体类赋值
# Java如何通过反射方式生成数据库实体类
# Java反射机制
# 如何将一个实体类所有字段赋值为null
# java 实现反射 json动态转实体类--fastjson
# 利用JAVA反射
# 读取数据库表名
# 自动生成对应实体类的操作
# java反射机制给实体类相同字段自动赋值实例
# Java 通过反射给实体类赋值操作
# Java如何通过反射取实体类字段取值
# 给大家
# 实体类
# 遍历
# 希望能
# 这篇
# 小编
# 大家多多
# 首字母
# GetModelNameAndType
# static
# void
# public
# model
# author
# kou
# testReflect
# InstantiationException
# IllegalAccessException
# getClass
# field
相关文章:
建站之星图片链接生成指南:自助建站与智能设计教程
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
已有域名和空间如何搭建网站?
北京网站制作的公司有哪些,北京白云观官方网站?
企业微网站怎么做,公司网站和公众号有什么区别?
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
PHP 500报错的快速解决方法
外贸公司网站制作,外贸网站建设一般有哪些步骤?
如何快速打造个性化非模板自助建站?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
微信h5制作网站有哪些,免费微信H5页面制作工具?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
贸易公司网站制作流程,出口贸易网站设计怎么做?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
建站主机解析:虚拟主机配置与服务器选择指南
制作网页的网站有哪些,电脑上怎么做网页?
如何将凡科建站内容保存为本地文件?
建站之星安装需要哪些步骤及注意事项?
高性价比服务器租赁——企业级配置与24小时运维服务
电商平台网站制作流程,电商网站如何制作?
网站微信制作软件,如何制作微信链接?
如何在香港服务器上快速搭建免备案网站?
已有域名建站全流程解析:网站搭建步骤与建站工具选择
html制作网站的步骤有哪些,iapp如何添加网页?
如何在万网ECS上快速搭建专属网站?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
如何快速搭建自助建站会员专属系统?
如何在景安云服务器上绑定域名并配置虚拟主机?
css网站制作参考文献有哪些,易聊怎么注册?
红河网站制作公司,红河事业单位身份证如何上传?
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
建站主机选哪家性价比最高?
微课制作网站有哪些,微课网怎么进?
如何通过可视化优化提升建站效果?
做企业网站制作流程,企业网站制作基本流程有哪些?
制作网站怎么制作,*游戏网站怎么搭建?
建站主机选购指南:核心配置优化与品牌推荐方案
如何续费美橙建站之星域名及服务?
香港网站服务器数量如何影响SEO优化效果?
定制建站方案优化指南:企业官网开发与建站费用解析
XML的“混合内容”是什么 怎么用DTD或XSD定义
在线教育网站制作平台,山西立德教育官网?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
建站之星logo尺寸如何设置最合适?
如何快速生成橙子建站落地页链接?
建站主机功能解析:服务器选择与快速搭建指南
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
C++如何使用std::optional?(处理可选值)
*请认真填写需求信息,我们会在24小时内与您取得联系。