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.lang.Class`类以及相关的类和接口,如`java.lang.reflect`包下...
Java反射是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Spring框架中,反射扮演着核心角色,特别是在依赖注入(DI)和面向切面编程(AOP)中。下面我们...
总结来说,DOM4J提供了强大的XML处理能力,而Java反射机制则赋予了程序在运行时对类和对象的动态操作能力。结合两者,可以实现Bean与XML之间的灵活转换,极大地提高了代码的可维护性和可扩展性。在实际开发中,这两...
7. **配置Class类**:在实际操作中,将文件数据映射到Bean时,通常需要指定目标Bean的Class对象,以便知道如何构建实例和设置属性。这可以通过构造函数参数、静态方法参数或者配置文件来实现。 总的来说,从文件...
Java反射技术是Java编程语言中的一个强大工具,它允许程序在运行时检查并操作类、接口、对象等的内部信息,包括但不限于类名、方法名、参数类型以及字段。通过反射,开发者可以实现动态调用方法、访问私有成员、创建...
Java反射与内省是Java编程语言中的核心特性,它们为开发者提供了强大的能力,可以在运行时检查和操作类、接口、对象及其属性。本PPT深入探讨了这些概念,旨在帮助开发者充分利用Java平台的灵活性。 首先,Java反射...
Java反射(Reflect)是Java语言中的一个重要特性,它允许运行时的Java程序访问、操作类、接口、字段和方法的信息,甚至动态调用方法。在Java编程中,反射提供了强大的能力,可以用来实现一些高级功能,如元编程、...
java.lang.reflect 提供类和接口,以获得关于类和对象的反射信息。 java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java....
《Java通用范例开发金典源代码》是一个包含大量Java编程示例的资源集合,旨在帮助开发者深入理解和掌握Java编程语言的各种特性和应用场景。这个压缩包文件中的源代码覆盖了Java语言的基础到高级各个方面,是Java学习...
Java反射机制是Java编程语言的核心特性之一,它赋予了程序在运行时检查和操作对象的能力。反射机制使得Java代码能够动态地获取类的信息(如类名、方法、字段),并且能够在运行时创建和调用对象的方法,这为编程带来...
总结来说,将JSON对象转化为Java Bean是Java开发中的常见操作,通常通过反射实现,但现代库如Jackson提供更高效的方法。在实际开发中,应根据项目需求选择合适的方法,兼顾易用性和性能。对于大型项目,考虑使用ORM...
Java反射机制是Java语言提供的一种强大的能力,允许程序在运行时动态地获取类的信息并调用其方法。在本示例中,`BaseDao` 类使用反射来创建一个通用的数据库查询方法,这可以极大地提高代码的复用性和灵活性。以下是...
例如,BeanUtils的核心类`org.apache.commons.beanutils.BeanUtils`是如何通过反射机制来实现对Bean属性的操作;`PropertyUtils`类如何处理复杂的属性访问,包括处理嵌套属性、集合属性等。此外,源码还包含了测试...
java.lang.reflect 提供类和接口,以获得关于类和对象的反射信息。 java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java.nio ...
1. **Java基础词汇**:在`Java词汇大全(非常有用).pdf`中,你可能会找到诸如`class`(类)、`object`(对象)、`interface`(接口)、`method`(方法)、`constructor`(构造器)等基本概念的英文表述。了解这些词汇...
java.lang.reflect 提供类和接口,以获得关于类和对象的反射信息。 java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java.nio ...
在Java中操作MongoDB数据库时,常常需要将Java对象(对象Bean)与MongoDB的数据表示对象DBObject进行相互转换。这主要是因为MongoDB的驱动程序使用DBObject来存储和检索数据,而我们通常会用面向对象的方式来定义和...
DOM4J是一个Java库,它提供了丰富的API来操作XML文档,而反射则是Java语言的一种特性,允许我们在运行时检查和修改类、接口、字段和方法。本文将深入探讨如何结合DOM4J和反射,以面向对象的方式进行XML格式的转换。 ...
java.lang.reflect 提供类和接口,以获得关于类和对象的反射信息。 java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java....
java.lang.reflect 提供类和接口,以获得关于类和对象的反射信息。 java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java....