java简单反射调用get,set方法

public Object setDate(ResultSet rs,Object o) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IntrospectionException, IllegalArgumentException, InvocationTargetException, SQLException{
Class cs = Class.forName(o.getClass().getName());
Field [] fileds = cs.getDeclaredFields();
for (Field field : fileds) {

PropertyDescriptor pd = new PropertyDescriptor(field.getName(),cs);

//获取所有set方法
Method method = pd.getWriteMethod();
//利用set方法赋值
method.invoke(o,rs.getString(field.getName()));
}
return o;
}

时间: 2024-10-05 22:09:03

java简单反射调用get,set方法的相关文章

java 通过反射调用属性,方法,构造器

package reflection2; import static org.junit.Assert.assertArrayEquals; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import org.junit.jupiter

【Java】反射调用与面向对象结合使用产生的惊艳

缘起 我在看Spring的源码时,发现了一个隐藏的问题,就是父类方法(Method)在子类实例上的反射(Reflect)调用. 初次看到,感觉有些奇特,因为父类方法可能是抽象的或私有的,但我没有去怀疑什么,这可是Spring的源码,肯定不会有错. 不过我去做了测试,发现确实是正确的,那一瞬间竟然给我了一丝的惊艳. 这其实是面向对象(继承与重写,即多态)和反射结合的产物.下面先来看测试,最后再进行总结. 友情提示:测试内容较多,不过还是值得一看. 具体方法的继承与重写 先准备一个父类,有三个方法,

根据类名,方法名,反射调用类的方法

/** * 根据类名,方法名,反射调用类的方法 * @方法名称: getResult * @描述: TODO * @param className * @param methodName * @param params * @return */ public static String getResult(String className,String methodName,Map<String,Object> params){ String result = null; try{ Objec

C#通过反射调用类及方法

反射有个典型的应用,就是菜单的动态加载,原理就是通过反射调用某个窗体(类).下面演示一下通过反射调用类及方法: 1.新建一个类,命名为:ReflectionHelper,代码如下: #region 创建对象实例 /// <summary> /// 创建对象实例 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="assemblyN

Java简单反射练习

昨晚看了Java的反射,附带做了下里面的反射练习, 案例:写一个“框架”,可以创建任意类的对象,并执行其中的任意方法: 前提:不能改变该类的任意代码,可以创建任意类的对象,可以执行任意方法 实现:1.配置文件+2.反射 步骤: (1)创建一个简单Person类 public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; thi

【Java基础】几种简单的调用关系与方法

直接上代码吧. 1 class lesson4AB 2 //同一个类下的public修饰的方法A,B可以相互调用 3 { 4 public void A() 5 { 6 B();//等价于this.B(); 7 } 8 public void B() 9 { 10 A();//等价于this.A(); 11 } 12 } 13 class lesson4C 14 //存在于不同类里的public修饰的方法C调用B 15 { 16 public void C() 17 { 18 lesson4AB

Java 使用反射获取类、方法、属性上的注释

有的时候我们想使用反射获取某个类的注释.方法上的注释.属性上的注释. 下面是一个简单的例子.里面包括了上面提到的三个点. package com.mine.practice.reflectfield; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.lang.reflect.Method; import javax.xml.bind.annotation.XmlAccessTy

在C#中使用反射调用internal的方法

MSDN上解释Internal如下: The internal keyword is an access modifier for types and type members. Internal types or members are accessible only within files in the same assembly. 即, 仅允许相同程序集内的代码调用类型或成员. 那么是否可以调用这些internal的方法呢? 如果被调用的程序集, 在代码中使用了InternalsVisi

在Java filter中调用service层方法

在项目中遇到一个问题,在 Filter中注入 Serivce失败,注入的service始终为null.如下所示: 1 public class WeiXinFilter implements Filter{ 2 3 @Autowired 4 private UsersService usersService; 5 6 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)