在JavaEE项目开发过程中,尤其是在原生的Servlet中,在接收页面传递的参数时,获取请求参数非常繁琐,或者是在原生的JDBC中,在接收数据库返回来的数据时,还要循环取值。这些问题给开发人员带来严重的工作量,在开发过程中非常吃力。那么,该如何解决这个问题呢?这个问题可以用反射来解决,因为反射可以动态的获取类的信息,在给实体类赋值是,我们可以用反射来动态的赋值,这样就可以解决开发人员大量的工作量。其中,下面主要用两个例子来说明,如何通过反射来给实体类赋值。
- 获取页面传递过来的参数值,传入HttpServletRequest对象和实体类,其中实体类为泛型T:
首先创建对象实例,获取到实体类字段名称(与页面参数名称一致)和类型,然后通过字段名称来设置方法名称,下一步获取到页面传过来的参数,再进行一系列的判断,然后给实体类不同的类型赋不同类型的值,返回实体类对象。
- 获取JDBC数据库返回的值,传入ResultSet对象和实体类,其中实体类是泛型T:
首先,创建一个List集合对象,通过ResultSet对象获取到元信息,在通过元信息获取到数据库字段和列的总数。下一步循环ResultSet对象,创建实体类对象,循环列的总数,获取到每一列的列名,然后拿数据库的列名和实体类的字段名比较,如果值相等就通过字段名获取到该字段类型,再然后进行类型判断,调用实体类的方法,设置对应类型的值,把实体类添加到List集合中,改变数据库资源,然后返回List集合对象。