`
liuhaixiao
  • 浏览: 143241 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

动态调用 简单Java Bean 的get/set 方法

阅读更多
自己试过可以,不知道有什么缺点。

工作需要,在事先不知道一个javaBean类的名字要动态调用这个类的set方法,给这个类的实例的属性设置值。
import java.lang.reflect.Field;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.lhx.test.model.User;

public class TestClass {
   
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
        // TODO Auto-generated method stub
        UserDAO dao = new UserDAO();
        java.sql.ResultSet _rs =  dao.getUsers();       //以上两步在数据库中去值
       
        Class oc = Class.forName("com.lhx.test.model.User");     //根据字符串得到这个类
        Field f[] = oc.getDeclaredFields();                                            //得到这个类的所有字段 不包括父类的字段
           
        List list = new ArrayList();
       
        while(_rs.next()){
            Object o  = oc.newInstance();                                             //得到这个类的一个实例
             for(int i=0;i<f.length;i++){
                String colmt = f[i].toString();
                System.out.println("colmt =" + colmt);
                int lastindex = colmt.lastIndexOf(".");
                String colm = colmt.substring(lastindex+1);
                f[i].set(o,(_rs.getObject(colm)));                                     //重点 通过调用字段的set方法,给实例中的属性赋值
            }
            list.add(o);
          }
           for(int k=0;k<list.size();k++){
                System.out.println(((User)list.get(k)).getUsername());
            }
    }

}
分享到:
评论
1 楼 fr1202 2008-08-08  
字段必须均为public,否则出错

相关推荐

    基于java和SQL server实现超市综合信息管理系统(源码+论文文档)

    在这些数据存取Bean中封装了对数据库中相对应表的插入insert,删除delete,查询select,更新update等操作,并通过get(),set()方法与JSP页面通信; 同时系统中各模块功能的实现也是通过操作各自商务逻辑Java Bean实现...

    基于java和SQL server实现超市综合信息管理系统(源码+论文文档)分享

    在这些数据存取Bean中封装了对数据库中相对应表的插入insert,删除delete,查询select,更新update等操作,并通过get(),set()方法与JSP页面通信; 同时系统中各模块功能的实现也是通过操作各自商务逻辑Java Bean实现...

    java 面试题 总结

    它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是...

    DWR.xml配置文件说明书(含源码)

    DWR共有三种Creator,最简单的”new”是调用bean的默认构造函数创建实例.”scripted”允许采用其他脚本语言创建实例.如BeanShell.在远程bean的默认构造函数不能进行进一步配置的情况下这种类型的creator比较有用.”...

    超级有影响力霸气的Java面试题大全文档

    当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例...

    简单的JSP+JAVABEAN+ACCESS留言簿

    定义留言属性的一个bean文件,定义了各个字段的get和set方法。 3. DBConn.java 定义了连接ACCESS数据库的方法,可以通过调用此方法访问数据库。 4. MessageBean.java 用来进行留言管理的bean,定义了添加留言,...

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    FactoryInstance 的 lookup() 方法被调用,在 SpringFactoryInstance 中,首先查找 Spring 容器,然后,通过 Bean 的 ID 查找 Bean,最终,FlexService 接口的实例被返回。 注意到 destination 的 id 并没有写死在...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    FactoryInstance 的 lookup() 方法被调用,在 SpringFactoryInstance 中,首先查找 Spring 容器,然后,通过 Bean 的 ID 查找 Bean,最终,FlexService 接口的实例被返回。 注意到 destination 的 id 并没有写死在...

    eclipse安卓开发必备工具

    我一直以为类的私有构造函数、属性、方法除了类自身其他类是无法访问的,前几天正好学习Spring框架,在学习Spring框架基础 Bean包时,写了一个简单的例子,类似如下: package study.spring.bean; public class ...

    Java面试宝典-经典

    13、是否可以从一个static方法内部发出对非static方法的调用? 12 14、Integer与int的区别 13 15、Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 13 16、下面的代码有什么不妥之处? 13 17、请说出作用域...

    Java面试宝典2010版

    13、是否可以从一个static方法内部发出对非static方法的调用? 12 14、Integer与int的区别 13 15、Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 13 16、下面的代码有什么不妥之处? 13 17、请说出作用域...

    java面试题

    Java 软件工程师面试资料大整合 1 Java 面霸 1 1. int 和 Integer 有什么区别? 8 2. String 和StringBuffer的区别 8 3. 运行时异常与一般异常有何异同? 8 4. 说出ArrayList,Vector,LinkedList的存储性能和特性 8 5...

    java面试题大全(2012版)

    13、是否可以从一个static方法内部发出对非static方法的调用? 12 14、Integer与int的区别 13 15、Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 13 16、下面的代码有什么不妥之处? 13 17、请说出作用域...

    spring2.5.6源码

    这里创建了一个XmlBeanDefinitionParser接口的实现,这个接口的具体类是DefaultXmlBeanDefinitionParser,这个接口很简单,只有registerBeanDefinitions一个方法,这个方法的作用也很明了,就是用来注册Bean的定义的...

    最新Java面试宝典pdf版

    13、是否可以从一个static方法内部发出对非static方法的调用? 12 14、Integer与int的区别 13 15、Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 13 16、下面的代码有什么不妥之处? 13 17、请说出作用域...

    Java面试笔试资料大全

    13、是否可以从一个static方法内部发出对非static方法的调用? 12 14、Integer与int的区别 13 15、Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 13 16、下面的代码有什么不妥之处? 13 17、请说出作用域...

    android-web-service:库进行http getpost请求调用,仅处理JSON响应并映射到bean

    AndroidWebServiceLibrary 该库进行http get / post请求调用,并且仅处理JSON响应。用法1.Your API class can extend BaseApi for you additional logic or directly create object of BaseApi class public class ...

    可扩展的文件选择器NoNonsense-FilePicker

    在java代码中调用选择器: // This always works Intent i = newIntent(context, FilePickerActivity.class); // This works if you defined the intent filter // Intent i = new Intent(Intent.ACTION_GET_CONTENT...

Global site tag (gtag.js) - Google Analytics