`
liuhaixiao
  • 浏览: 148247 次
  • 性别: 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动态对象装配实现 测试--初步实现bean的set/get功能

    `dynamicGetMethod`方法则根据给定的方法名动态调用bean的`get`方法。 这个`DYNC_Object`类可以作为其他更复杂动态装配场景的基础。例如,当处理来自数据库或JSON输入的数据时,我们可以使用这种方法动态地填充...

    get set方法生成工具

    在Java编程语言中,get和set方法是面向对象设计中的基本元素,它们构成了Java Bean规范的一部分。这些方法用于访问和修改对象的私有属性,确保数据的安全性和封装性。"get set方法生成工具"是为了帮助开发者提高代码...

    自动根据数据库生成JAVA BEAN和DAO

    4. 生成的代码:在“实体”目录下,你会找到生成的Java Bean类,它们包含了与数据库表字段对应的属性及get/set方法。在“DAO生成工具”目录下,会有相应的DAO接口和实现类,包含了对数据库的基本操作方法。 5. 集成...

    java bean和map之间的互转

    例如,对于嵌套的Java Bean,可以在`beanToMap`方法中递归调用自身;对于自定义类型转换,可以在调用setter方法前进行适当的类型转换。 总的来说,Java Bean和Map之间的互转在Java开发中非常常见,尤其是在数据交换...

    拷贝JSON对象值进Java Bean对象

    这段代码利用了反射机制,找到Java Bean类中的setter方法,根据JSON中的键值对调用setter方法设置属性值。 另一种常见的方式是使用Gson库,它的使用更加简洁。首先,引入Gson库,然后使用`Gson.fromJson()`方法进行...

    java Map转换成bean,利用java反射以及java和bean包

    首先,Java反射是Java语言的一个重要特性,它允许程序在运行时检查类、接口、字段和方法的信息,甚至可以动态地调用方法和修改字段值。在Map到Bean的转换中,反射用于动态地创建Bean实例并设置其属性值。这需要使用`...

    java反射以及复制一个bean的值到另一个bean中。

    通过反射,我们可以动态地创建对象、访问私有成员、调用私有方法,甚至改变对象的行为。Java反射 API 主要包含在 `java.lang.reflect` 包中,包括 `Class` 类、`Constructor` 类、`Method` 类和 `Field` 类等。 ...

    java+bean分页技术

    &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt; PageBean pageBean = (PageBean) request.getAttribute("pageBean"); if (pageBean == null) { pageBean = new PageBean(); } pageBean....

    通过java反射实现map与bean之间互转

    3. **设置Bean的属性值**:对于Map到Bean的转换,遍历Map,使用反射调用Bean的setter方法来设置每个属性的值。首先,使用`Method`对象的`setAccessible(true)`使私有方法可访问,然后调用`invoke()`方法执行setter。...

    基于JAVA的IOC/DI框架的设计与实现

    1. **定义JavaBean**: 首先定义了一个名为`TestStyle`的JavaBean,它包含了字体名称(fontName)、字体大小(fontSize)、是否加粗(bold)以及是否斜体(italic)等属性,并提供了相应的set/get方法。 ```java public ...

    BeanMapper:比BeanUtils.copyProperties更快

    BeanMapper 一个BeanUtils.copyProperties的小型快速替代。 起因 由于BeanUtils(Spring或Apache Commons)的copyProperties实现是利用反射实现的,它在大量调用时具有比较严重的性能问题。 BeanMapper通过javassist...

    有关动态bean的一些用法

    动态Bean是Java中的一种机制,允许程序在运行时创建和操作具有可变属性的对象,而无需预先定义具体的类。这种灵活性使得动态Bean在处理数据模型不确定或者需要动态适应变化的场景中非常有用。Apache Commons ...

    JQuery getJSON() 调用Servlet简单例子

    `User`类只是一个简单的Java Bean,包含姓名和电子邮件属性: ```java public class User { private String name; private String email; public User(String name, String email) { this.name = name; this....

    JspServletBean example

    这里,EL表达式`${user.name}`和`${user.age}`会自动查找请求或session范围内的`user` Bean,并调用对应的getter方法获取属性值。 结合JSP、Servlet和Bean,可以实现MVC(Model-View-Controller)架构,提高代码的...

    Java编程中使用动态代理实现AOP功能(附项目设计实例)

    通过上述步骤,开发者可以在不修改目标对象原有代码的情况下,通过动态代理为Java Bean的特定方法调用添加额外的行为。这种方式不仅使得代码更加简洁,而且提高了代码的可维护性和可扩展性。另外,这种方法也类似于...

    springboot+webservice搭建webservice服务端及使用java客户端两种方式进行调用webservice接口

    本教程将讲解如何使用Spring Boot集成Apache CXF(一个强大的Java Web Service框架)来构建服务端,并探讨两种Java客户端调用Web Service接口的方法。 首先,我们需要理解Spring Boot与CXF的整合。Spring Boot通过...

    使用jsp和java.bean来构建一个网上书店

    - **set和get方法**:通过JSP表达式或脚本元素调用JavaBean的setter和getter方法,进行数据的读写。 - **动作指令**:如`jsp:setProperty`和`jsp:getProperty`,用于设置和获取JavaBean的属性值。 **4. 数据库连接...

    PHP单例模式模拟Java Bean实现方法示例

    在这个例子中,`Php_bean`拥有属性如`hit`(命中次数)、`array`(缓存)和`itratorCount`(迭代次数),以及对应的方法如`add_hit()`、`get_hit()`、`add_itratorCount()`、`get_itratorCount()`、`set_cache()`和`...

    调用 java webservice 的问题

    值得注意的是,`regionId`属性除了有`set`和`get`方法外,还存在一个`regionIdSpecified`布尔属性,其作用在于指示在SOAP消息中是否应该包含`regionId`字段。这是因为某些WebServices在处理请求时,会根据字段是否被...

    利用java反射技术实现动态搜索所有字段

    5. **字段值操作**:`Field`对象提供了`get(Object obj)`和`set(Object obj, Object value)`方法,用于读取和设置指定对象的字段值。确保传入的对象与字段所属的类匹配,否则将抛出异常。 6. **继承关系处理**:...

Global site tag (gtag.js) - Google Analytics