通过java反射得到javabean的属性名称和值参考
通过java反射得到javabean的属性名称和值
Field fields[]=cHis.getClass().getDeclaredFields();//cHis 是实体类名称
String[] name=new String[fields.length];
Object[] value=new Object[fields.length];
try {
Field.setAccessible(fields, true);
for (int i = 0; i < name.length; i++) {
name[i] = fields[i].getName();
System.out.println(name[i] + "-> ");
value[i] = fields[i].get(cHis);//cHis 是实体类名称
System.out.println(value[i]);
}
} catch (Exception e) {
e.printStackTrace();
}
通过反射获取类属性字段 以及 调用类方法 以下方法未测试应该可以
public class ModelClassHelper {
public static HashMap<String,Class> init(String classPath)
{
try {
//"com.geocompass.model.STSTBPRPModel"
HashMap<String,Class> fieldHashMap=new HashMap<String,Class>();
Class cls = Class.forName(classPath); //com.geocompass.model.STSTBPRPModel
Field[] fieldlist = cls.getDeclaredFields();
for (int i = 0; i < fieldlist.length; i++) {
Field fld = fieldlist[i];
fieldHashMap.put(fld.getName(), fld.getType());
// System.out.println("name = " + fld.getName());
// System.out.println("decl class = " + fld.getDeclaringClass());
// System.out.println("type = " + fld.getType());
// System.out.println("-----");
}
return fieldHashMap;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static String getTableName(String classPath)
{
try {
Class cls = Class.forName(classPath);
Method test=cls.getDeclaredMethod("getTableName" );
Object invoke = test.invoke(cls.newInstance());
return invoke.toString();
//cls.asSubclass(TabModel.class);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}}
利用反射技术动态获取任意Java类实例的属性值
package org.apache.easframework.core.entity.impl;
import java.lang.reflect.Field;
public class TestEntity {
private String code;
private String name;
public void setCode(String code)
{
this.code = code;
}
public String getCode()
{
return this.code;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
public static void main(String[] args) throws SecurityException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException
{
TestEntity obj = new TestEntity();
obj.setName("name value");
obj.setCode("code value");
Field[] fds = Class.forName
("org.apache.easframework.core.entity.impl.TestEntity").getDeclaredFields();
System.out.println(fds.length);
for(int i=0;i<fds.length;i++)
{
System.out.println(fds[i].get(obj));
}
}
}
通过java反射得到javabean的属性名称和值参考的更多相关文章
- 利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils
有时遇到将数据传输对象转换成JSON串会将属性值为空的属性去掉,利用Java反射实现JavaBean对象数据传输对象的相同属性复制并初始化数据传输对象属性为空的属性,然后转换成JSON串 packag ...
- Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别
Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别 在工作中遇到一个问题,就是你需要去判断某个字符串是不是对象的某个成员属性名,然后根据判断结果 ...
- js遍历对象所有的属性名称和值
/* * 用来遍历指定对象所有的属性名称和值 * obj 需要遍历的对象 * author: Jet Mah * website: http://www.javatang.com/archives/2 ...
- 遍历JavaScript某个对象所有的属性名称和值
/* * 用来遍历指定对象所有的属性名称和值 * obj 需要遍历的对象 */ function allPrpos(obj) { // 用来保存所有的属性名称和值 var props = " ...
- java反射获取Object的属性和值
在看反射顺便做个笔记,目前知道的反射的Object都是要有对象的也就是实体Bean. import java.lang.reflect.Field; import java.util.ArrayLis ...
- java-读取类中的属性名称和值
方法 /** * 获取类中的所有属性明名称和值(因涉及到可能会是继承关系的父类,所以从f中去属性名称,从f2中取值,两个可以一样,也可以使父类) * @param f:读取属性类(如果取父类的,则这里 ...
- 使用Expression tree访问类的属性名称与值
表达式树Expression是Linq中一项比较重要的功能,对其深刻了解Lamda以及计算表达式有很大的帮助. 下面是利用 Expression<Func<Object>>[] ...
- java 反射获取类的属性 类型 名称和值
/** * 获取属性类型(type),属性名(name),属性值(value)的map组成的list * */ private List getFiledsInfo(Object o){ Field[ ...
- java反射获取字段的属性值,以及为字段赋值等方法
1.获取某个类的属性值 /*利用getter方法获取值(首字母大写) CjJssetDTO obj: */ String filedName = "Cj"+(i+1); Class ...
随机推荐
- MyEclipse9.0破解
http://www.cnblogs.com/liulanglang/archive/2011/11/15/2249702.html
- jgs--多线程和synchronized
多线程 多线程是我们开发人员经常提到的一个名词.为什么会有多线程的概念呢?我们的电脑有可能会有多个cpu(或者CPU有多个内核)这就产生了多个线程.对于单个CPU来说,由于CPU运算很快,我们在电脑上 ...
- ArcGIS 网络分析[1.5] 使用点线数据一起创建网络数据集(如何避免孤立点/点与线的连通性组合结果表)
ArcGIS中最基本的三种矢量数据是什么?点线面. 网络中除了路网之外,还会有地物点. 如上图,我们在建立网络数据集的时候,作为实验,当然可以只是公路网.但是在大型的决策任务中,网络数据集就不只是公路 ...
- CountDownLacth详解
一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 用给定的计数 初始化 CounDownLatch.由于调用了countDown() 方法,所以在当前计数到达零之 ...
- python之配置logging的几种方式
作为开发者,我们可以通过以下3中方式来配置logging: 1)使用Python代码显式的创建loggers, handlers和formatters并分别调用它们的配置函数: 2)创建一个日志配置文 ...
- bootstrap4中文版(纯手工翻译)
1初步开始 1.1依赖 这个仓储包含一系列基于bootstrap标识和css样式的原生angular2指令.所以是不需要依赖jq和bootstrap.js的.只需要以下依赖即可: Angular(需要 ...
- SmartCoder每日站立会议10
站立会议内容: 准备为上交第一阶段项目进行加班,将各个页面联系起来,静态地图变为动态转换,考虑地图全屏或者是小屏即消息展示方式 1.站立会议照片: 2.任务展板: 3.燃尽图:
- IPad分屏,当电脑第二显示屏
最在在网上看到使用IPad可以做为电脑的第二个显示屏,对于我这样一个程序猿来说,这真是我的福音呀!因此在网上搜了许多关于Ipad投屏的信息,下面简单说明一下,包括怎么使用! 1.根据在网上搜索的结果, ...
- webpack务虚扫盲
打包工具的角色 所谓打包工具在web开发中主要解决的问题是: (1)文件依赖管理.毕竟现在都是模块化开发,打包工具首先就是要梳理文件之间的依赖关系. (2)资源加载管理.web本质就是html.js和 ...
- CSS小技巧-两个盒子之间的间距问题
1.水平排放的盒子,水平间距是两个margin的累加 2.垂直排放的盒子,垂直间距是合并的取最大值