java invoke 反射的使用方法
来源:互联网 发布:逆光源网络剧免费观看 编辑:程序博客网 时间:2024/05/22 05:06
public class TaskProvidePropsList {
private int provide_id;
private int props_sign;
public int getProvide_id() {
return provide_id;
}
public void setProvide_id(int provide_id) {
this.provide_id = provide_id;
}
public int getProps_sign() {
return props_sign;
}
public void setProps_sign(int props_sign) {
this.props_sign = props_sign;
}
}
写一个invoke的实例,就是调用所有的set方法,进行赋值,然后通过所有的get方法取值,打印出值来
你这个类是一个严格的JavaBean格式。。所以先可以获得属性。。然后获得读写方法。。然后写值。。读值。。hibernate其实也就是采用的这种差不多的方式。。
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ReflectTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("TaskProvidePropsList");//这里的类名是全名。。有包的话要加上包名
Object obj = clazz.newInstance();
Field[] fields = clazz.getDeclaredFields();
//写数据
for(Field f : fields) {
PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
Method wM = pd.getWriteMethod();//获得写方法
wM.invoke(obj, 2);//因为知道是int类型的属性,所以传个int过去就是了。。实际情况中需要判断下他的参数类型
}
//读数据
for(Field f : fields) {
PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
Method rM = pd.getReadMethod();//获得读方法
Integer num = (Integer) rM.invoke(obj);//因为知道是int类型的属性,所以转换成integer就是了。。也可以不转换直接打印
System.out.println(num);
}
}
private int provide_id;
private int props_sign;
public int getProvide_id() {
return provide_id;
}
public void setProvide_id(int provide_id) {
this.provide_id = provide_id;
}
public int getProps_sign() {
return props_sign;
}
public void setProps_sign(int props_sign) {
this.props_sign = props_sign;
}
}
写一个invoke的实例,就是调用所有的set方法,进行赋值,然后通过所有的get方法取值,打印出值来
你这个类是一个严格的JavaBean格式。。所以先可以获得属性。。然后获得读写方法。。然后写值。。读值。。hibernate其实也就是采用的这种差不多的方式。。
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ReflectTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("TaskProvidePropsList");//这里的类名是全名。。有包的话要加上包名
Object obj = clazz.newInstance();
Field[] fields = clazz.getDeclaredFields();
//写数据
for(Field f : fields) {
PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
Method wM = pd.getWriteMethod();//获得写方法
wM.invoke(obj, 2);//因为知道是int类型的属性,所以传个int过去就是了。。实际情况中需要判断下他的参数类型
}
//读数据
for(Field f : fields) {
PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
Method rM = pd.getReadMethod();//获得读方法
Integer num = (Integer) rM.invoke(obj);//因为知道是int类型的属性,所以转换成integer就是了。。也可以不转换直接打印
System.out.println(num);
}
}
}
如果想了解更多相关的资料请关注(深圳财务代理 www.shenghw.com)官网
0 0
- java invoke 反射的使用方法
- java invoke 反射的使用方法
- Java invoke反射类的用法
- java invoke 反射机制的使用
- java中的反射--method的invoke方法
- java invoke 反射方法的使用详解
- java 反射 invoke使用
- java反射invoke详解
- java invoke --反射
- java 反射中的invoke
- 【Java】反射初探(invoke)
- java中的反射,invoke方法
- java中的反射,invoke方法
- java中的反射invoke方法
- Java Reflect 反射 .invoke 示例
- java中的反射,invoke方法
- Java 反射 ,Method的invoke()方法的使用
- java反射中Method类invoke方法的用法
- 一个小sql的问题记录 对分析函数的应用
- 算法之旅,直奔<bitset>之二 size
- maven 配置
- 数据库-Oracle-plsql(一)
- 数据分析≠Hadoop+NoSQL,不妨先看完善现有技术的10条捷径(分享)
- java invoke 反射的使用方法
- 使用DirectSound进行PCM声音采集
- 新浪微博的Tab滑动效果
- 利用 Cache_Lite代替codeigniter中的cache功能, --- ci 缓存扩展
- Navicat for mysql、SQL Server、Oracle
- valgrind -- 安装 -- 缺少 libc6-dbg
- Cookie跨域操作
- SHELL:echo -e "\033[字背景颜色;字体颜色m字符串\033[0m"
- CocoStudioUI中的UI事件机制分析