`

java反射应用对BEAN的操作,写通用类、标签时有用

    博客分类:
  • Java
阅读更多
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

//其中User就是一个bean,里面就一个name属性
public class Test {
    
public static void main(String[] args) throws SecurityException, NoSuchMethodException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException, InvocationTargetException{
User user=new User();
List list=new ArrayList();
list.add(user);
System.out.print("+++++++");
Method method=getSetMethod(list.get(0).getClass(),"name");
System.out.print("+++++++");
method.invoke(list.get(0),"liuyong");
method=getGetMethod(list.get(0).getClass(),"name");
System.out.println(method.invoke(list.get(0),null));
}

public static Method getGetMethod(Class objectClass,String fieldName) throws SecurityException, NoSuchMethodException{
    System.out.print("+++++++");
    StringBuffer sb=new StringBuffer();
    sb.append("get");
    sb.append(fieldName.substring(0,1).toUpperCase());
    sb.append(fieldName.substring(1));
    Method method=objectClass.getMethod(sb.toString(), null);
    System.out.print("+++++++");
    return method;
}

public static Method getSetMethod(Class objectClass,String fieldName) throws SecurityException, NoSuchMethodException, NoSuchFieldException{
    Class[] parameterTypes=new Class[1];
    Field field=objectClass.getDeclaredField(fieldName);
    System.out.println("dasg");
    parameterTypes[0]=field.getType();
    StringBuffer sb=new StringBuffer();
    System.out.println("dasg");
    sb.append("set");
    sb.append(fieldName.substring(0,1).toUpperCase());
    sb.append(fieldName.substring(1));
    System.out.println(fieldName);
    Method method=objectClass.getMethod(sb.toString(), parameterTypes);
    System.out.println("dasg");
    return method;
    
}
}

 

分享到:
评论

相关推荐

    最全面的java反射总结

    Java反射是Java编程语言中的一个强大工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心在于`java.lang.Class`类以及相关的类和接口,如`java.lang.reflect`包下...

    JAVA反射简单例子

    Java反射是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Spring框架中,反射扮演着核心角色,特别是在依赖注入(DI)和面向切面编程(AOP)中。下面我们...

    dom4j 和java反射

    总结来说,DOM4J提供了强大的XML处理能力,而Java反射机制则赋予了程序在运行时对类和对象的动态操作能力。结合两者,可以实现Bean与XML之间的灵活转换,极大地提高了代码的可维护性和可扩展性。在实际开发中,这两...

    读取文件数据并解析成bean实体类

    7. **配置Class类**:在实际操作中,将文件数据映射到Bean时,通常需要指定目标Bean的Class对象,以便知道如何构建实例和设置属性。这可以通过构造函数参数、静态方法参数或者配置文件来实现。 总的来说,从文件...

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

    Java反射技术是Java编程语言中的一个强大工具,它允许程序在运行时检查并操作类、接口、对象等的内部信息,包括但不限于类名、方法名、参数类型以及字段。通过反射,开发者可以实现动态调用方法、访问私有成员、创建...

    Java反射与内省-PPT

    Java反射与内省是Java编程语言中的核心特性,它们为开发者提供了强大的能力,可以在运行时检查和操作类、接口、对象及其属性。本PPT深入探讨了这些概念,旨在帮助开发者充分利用Java平台的灵活性。 首先,Java反射...

    java反射(reflect)

    Java反射(Reflect)是Java语言中的一个重要特性,它允许运行时的Java程序访问、操作类、接口、字段和方法的信息,甚至动态调用方法。在Java编程中,反射提供了强大的能力,可以用来实现一些高级功能,如元编程、...

    JAVA_API1.6文档(中文)

    java.lang.reflect 提供类和接口,以获得关于类和对象的反射信息。 java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java....

    Java通用范例开发金典源代码

    《Java通用范例开发金典源代码》是一个包含大量Java编程示例的资源集合,旨在帮助开发者深入理解和掌握Java编程语言的各种特性和应用场景。这个压缩包文件中的源代码覆盖了Java语言的基础到高级各个方面,是Java学习...

    Java反射机制说明

    Java反射机制是Java编程语言的核心特性之一,它赋予了程序在运行时检查和操作对象的能力。反射机制使得Java代码能够动态地获取类的信息(如类名、方法、字段),并且能够在运行时创建和调用对象的方法,这为编程带来...

    为了高效地将Json对象转化成Java bean对象,传统上我们是在运行是利用反射来实现.zip

    总结来说,将JSON对象转化为Java Bean是Java开发中的常见操作,通常通过反射实现,但现代库如Jackson提供更高效的方法。在实际开发中,应根据项目需求选择合适的方法,兼顾易用性和性能。对于大型项目,考虑使用ORM...

    利用java反射创建通用的数据库查询方法.pdf

    Java反射机制是Java语言提供的一种强大的能力,允许程序在运行时动态地获取类的信息并调用其方法。在本示例中,`BaseDao` 类使用反射来创建一个通用的数据库查询方法,这可以极大地提高代码的复用性和灵活性。以下是...

    BeanUtil1.8 SRC 源码和 jar包

    例如,BeanUtils的核心类`org.apache.commons.beanutils.BeanUtils`是如何通过反射机制来实现对Bean属性的操作;`PropertyUtils`类如何处理复杂的属性访问,包括处理嵌套属性、集合属性等。此外,源码还包含了测试...

    Java 1.6 API 中文 New

    java.lang.reflect 提供类和接口,以获得关于类和对象的反射信息。 java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java.nio ...

    Java开发相关英语,包括计算机通用英语

    1. **Java基础词汇**:在`Java词汇大全(非常有用).pdf`中,你可能会找到诸如`class`(类)、`object`(对象)、`interface`(接口)、`method`(方法)、`constructor`(构造器)等基本概念的英文表述。了解这些词汇...

    java api最新7.0

    java.lang.reflect 提供类和接口,以获得关于类和对象的反射信息。 java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java.nio ...

    java操作mongodb时,对象bean和DBObject相互转换的方法(推荐)

    在Java中操作MongoDB数据库时,常常需要将Java对象(对象Bean)与MongoDB的数据表示对象DBObject进行相互转换。这主要是因为MongoDB的驱动程序使用DBObject来存储和检索数据,而我们通常会用面向对象的方式来定义和...

    dom4j+反射,面向对象方式的xml格式转换

    DOM4J是一个Java库,它提供了丰富的API来操作XML文档,而反射则是Java语言的一种特性,允许我们在运行时检查和修改类、接口、字段和方法。本文将深入探讨如何结合DOM4J和反射,以面向对象的方式进行XML格式的转换。 ...

    JavaAPI中文chm文档 part2

    java.lang.reflect 提供类和接口,以获得关于类和对象的反射信息。 java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java....

    JavaAPI1.6中文chm文档 part1

    java.lang.reflect 提供类和接口,以获得关于类和对象的反射信息。 java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java....

Global site tag (gtag.js) - Google Analytics