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

java 反射 取值、设值

    博客分类:
  • Java
阅读更多

不是偶特别想造这个轮子,只是项目环境比较复杂,原来没有导入commons-beanutils-1.6.1.jar包,但是又不想一个一个的设置属性,就写个了这样的方法,希望别被别鄙视,写的比较粗糙...

 

说明:将obj的值存入desc中(类似的操作其实可以直接调用jar中的BeanUtil.copyProperties()方法,此处只是记录下反射的用法。)

public class Test {
import java.lang.reflect.Field;
import java.lang.reflect.Method; 
   /**
     * Copy obj to desc.
     * 
     */
    public static void copyProperties(Object desc, Object obj){
        Class<?> descClass = desc.getClass();
        Class<?> objClass = obj.getClass();
        Field[] fields = objClass.getDeclaredFields();
        try {
            for (int i = 0; i < fields.length; i++) {
                String name = fields[i].getName();
                String getMethodName = "get"+toFirstLetterUpperCase(name);
                String setMethodName = "set"+toFirstLetterUpperCase(name);
                try{
                	Object value = objClass.getMethod(getMethodName).invoke(obj);
                	descClass.getMethod(setMethodName, value.getClass()).invoke(desc, value);
                }catch(Exception e){
                }
            }
        } catch (Exception e) {
            
        }
    }
    public static String toFirstLetterUpperCase(String str) {
    	if(str == null || str.length() < 2){
    		return str;
    	}
        String firstLetter = str.substring(0, 1).toUpperCase();
        return firstLetter + str.substring(1, str.length());
    }

}

 

朋友的网站 http://woods2010.cn.alibaba.com/ 专业电子器件代购

1
0
分享到:
评论
1 楼 jack_guan_7 2013-07-23  
有点看不懂,能不能多给点注释。

相关推荐

    Java反射工具类

    提供以下几个功能: 1. 取最简类名 2. 动态赋值 3. 动态取值 4. 判断是否普通类型(自定义成员变量) 5. 动态取指定类的所有属性名

    java反射对实体类取值和赋值

    项目中需要过滤前面表单页面中传过来的实体类的中的String类型变量的前后空格过滤,由于前几天看过一个磨砺营的java反射讲解,非常受益。于是,哈哈哈  public static &lt;T&gt; void modelTrim(T model){  Class&lt;T&gt; ...

    使用Java反射机制将Map转换为Java对象,支持Boolean、Date类型

    在本主题中,我们将深入探讨如何使用Java反射机制将Map转换为Java对象,同时支持Boolean和Date类型的数据。这种转换在处理JSON到对象的映射或者数据库查询结果到对象的映射时非常有用。 首先,我们需要了解Java中的...

    java反射遍历实体类属性和类型,并赋值和获取值的简单方法

    这里我们将深入探讨如何使用Java反射遍历实体类的属性和类型,并进行赋值和获取值的操作。 首先,我们需要理解Java反射的基本概念。`java.lang.reflect`包提供了几个核心类和接口,如`Class`、`Field`、`Method`和`...

    JAVA基础知识总结

    反射(Reflection)是Java语言提供的一种基础功能,通过反射可以访问Java对象的属性、方法、构造器等信息,这对于框架开发和动态代理等高级功能有重要的作用。多线程是Java中实现并发编程的技术,它可以让程序中的多...

    java基础知识笔记

    13. **反射**:Java反射API允许程序在运行时动态访问和修改类的信息,如创建对象、调用方法、访问字段等,增强了代码的灵活性。 14. **注解(Annotation)**:注解是元数据的一种形式,用于向编译器或JVM提供信息,...

    JAVA中常见的异常

    这可能是因为参数超出了合理的取值范围或者与预期不符。 **示例代码:** ```java Graphics g = ...; g.setColor(new Color(-1, -1, -1)); ``` 在这个例子中,尝试使用负数作为颜色分量值会抛出`...

    java八股文共10章八股文.rar

    - 基本数据类型:了解整型、浮点型、字符型和布尔型的取值范围及用法。 - 变量的声明与赋值:掌握不同类型的变量声明、初始化和作用域规则。 - 数据类型转换:理解自动类型转换和强制类型转换的区别和注意事项。 ...

    传智播客毕向东_Java基础源代码 java基础源码

    13. **反射**:反射机制允许程序在运行时动态获取类的信息并操作类的对象,增强了程序的灵活性。 14. **注解(Annotation)**:注解提供了一种元数据,可以用于编译时检查、运行时处理或自动生成代码。 毕向东老师...

    Java之基本数据类型 Sizeof 大小

    在没有`Sizeof`的情况下,开发者可以通过其他方式,如Java的反射API,来间接获取对象的大小,但这通常涉及到更复杂的内存管理概念。在实际编程中,我们应当根据需求选择合适的数据类型,平衡性能和内存消耗。

    Java知识(精华总结)

    以上内容仅是Java基础知识的冰山一角,实际开发中还需要掌握异常处理、IO流、多线程、网络编程、反射、泛型等高级主题。通过不断学习和实践,才能真正掌握Java编程,并能灵活应用于各种项目中。

    java基础java基础学习java基础学习

    以上只是Java基础的冰山一角,实际学习中还会涉及到枚举、注解、反射、IO流的高级用法、NIO、JVM内存模型、设计模式等多个主题。在实践中不断深入学习和练习,你将能够逐步掌握Java编程,并为更高级的技术打下坚实...

    《Java编程基础》代码

    17. **反射机制**:Java反射API允许程序在运行时动态地获取类的信息(如类名、属性、方法等)并进行操作,增强了程序的灵活性。 18. **注解(Annotation)**:注解是Java提供的一种元数据,可以向编译器、JVM或其他...

    java基础文档

    14. **反射**:Java反射机制允许我们在运行时动态地获取类的信息并操作类的对象,是很多框架和高级功能的基础。 15. **注解**:注解提供了一种元数据,可以用于编译时或运行时的代码处理,例如Spring框架中的@...

    java由浅到深必了解的题

    理解它们的存储方式、取值范围以及相互转换是学习Java的第一步。 - **变量**:变量是存储数据的容器,包括声明、初始化和赋值等操作。 - **运算符**:了解算术、比较、逻辑、位、赋值等各类运算符的使用规则。 - ...

    Java编程基础,Java初学者采用

    安装后,设置好环境变量`JAVA_HOME`,确保`javac`编译器和`java`解释器可以在命令行中使用。 2. ** HelloWorld程序**:每个编程之旅通常从"Hello, World!"开始。在Java中,你需要创建一个公共类(public class),...

    java基础ppt

    每个数据类型都有其固定的内存大小和取值范围。 - **变量**:存储数据的地方,声明时需指定类型。 - **常量**:一旦初始化就不能改变的变量,通常用final关键字声明。 - **运算符**:包括算术、比较、逻辑、位、...

    java中文手册全部中文解释

    变量是用来存储数据的容器,每种数据类型都有其特定的取值范围和用途。 - **操作符与表达式**:包括算术、比较、逻辑、赋值等操作符,它们用于组合变量和常量,形成表达式,进行计算或判断。 - **控制结构**:包括...

    JAVA语言程序设计 第一章概述

    安装完成后,设置环境变量如JAVA_HOME、PATH和CLASSPATH,确保系统能够找到Java编译器(javac)和Java虚拟机(JVM)。 3. **Java程序结构**: Java程序由一个或多个类组成,每个类包含方法和变量。程序执行始于...

Global site tag (gtag.js) - Google Analytics