/**
*
*/
package *;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import *.Member;
/**
* @author thinkpad
*
*/
public class ReflectListToString {
/**
* @param args
* @throws InvocationTargetException
* @throws IllegalArgumentException
* @throws IllegalAccessException
* @throws SecurityException
* @throws NoSuchMethodException
*/
public static void main(String[] args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
List<Member> members=new ArrayList<Member>(0);
Member m=new Member(1l);
m.setAccount("aa");
m.setBankName("fdaf");
members.add(m);
members.add(m);
StringBuffer sb=new StringBuffer();
for(Member m1:members ){
String name=m.getClass().getSimpleName().substring(0,1).toLowerCase()+m.getClass().getSimpleName().substring(1);
Class classType=m.getClass();
Field[] fields= m1.getClass().getDeclaredFields();
for(Field field:fields){
String fieldName=field.getName();
String stringLetter=fieldName.substring(0, 1).toUpperCase();
//获得相应属性的getXXX和setXXX方法名称
String getName="get"+stringLetter+fieldName.substring(1);
String setName="set"+stringLetter+fieldName.substring(1);
//获取相应的方法
Method getMethod=classType.getMethod(getName, new Class[]{});
Method setMethod=classType.getMethod(setName, new Class[]{field.getType()});
//调用源对象的getXXX()方法
Object value=getMethod.invoke(m, new Object[]{});
String p=name+"."+fieldName+"="+value;
sb.append(p);
sb.append("&");
}
}
System.out.println(sb.toString());
}
/**
* @param args
* @throws InvocationTargetException
* @throws IllegalArgumentException
* @throws IllegalAccessException
* @throws SecurityException
* @throws NoSuchMethodException
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public static <T> String convertListToParam(List<T> list) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
StringBuffer sb=new StringBuffer();
for(T t:list ){
String name=t.getClass().getSimpleName().substring(0,1).toLowerCase()+t.getClass().getSimpleName().substring(1);
Class classType=t.getClass();
Field[] fields= t.getClass().getDeclaredFields();
for(Field field:fields){
String fieldName=field.getName();
String stringLetter=fieldName.substring(0, 1).toUpperCase();
//获得相应属性的getXXX和setXXX方法名称
String getName="get"+stringLetter+fieldName.substring(1);
//String setName="set"+stringLetter+fieldName.substring(1);
//获取相应的方法
Method getMethod=classType.getMethod(getName, new Class[]{});
//Method setMethod=classType.getMethod(setName, new Class[]{field.getType()});
//调用源对象的getXXX()方法
Object value=getMethod.invoke(t, new Object[]{});
String p=name+"."+fieldName+"="+value;
sb.append(p);
sb.append("&");
}
}
return sb.toString();
}
}
分享到:
相关推荐
这个“Java反射demo”很可能是包含了一些示例代码,用于演示如何在实际开发中应用反射技术。以下是关于Java反射的详细知识点: 1. **什么是反射**: Java反射机制是在运行状态中,对于任意一个类,都能够知道这个...
Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性在处理现实业务问题时尤其有用,例如实现插件化、元编程、动态代理等...
Java反射是Java编程语言中的一个强大特性,它允许我们在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性在处理不确定类型、插件系统、序列化、元数据处理以及许多其他...
Java反射是Java编程语言中的一个强大特性,它允许运行时检查类、接口、字段和方法的信息,甚至可以动态地创建对象并调用其方法。在Java中,`java.lang.reflect`包提供了对反射的支持,包括`Class`、`Constructor`、`...
给同事写的反射机制的用法,非常简单易用,大家一看就懂。也便于初学者对反射机制的理解 资源免费提供大家下载,如有疑问,可以直接咨询我
### Java反射机制详解 #### 一、什么是Java反射机制? Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的...
这个“Java反射演示Demo”是一个实例,展示了如何利用Java反射API进行各种操作。下面我们将深入探讨Java反射的核心概念及其在实际开发中的应用。 首先,我们需要了解什么是Java反射。在Java中,当我们编译一个程序...
Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java具有了高度的灵活性,常用于框架开发、插件系统、元编程等...
Java中的CGLib与反射是两种常用的动态代理技术,它们在实现面向切面编程(AOP)时发挥着重要作用。本文将深入探讨这两种技术,并通过一个简单的AOP demo来阐述它们的使用方法。 首先,让我们了解什么是CGLib。CGLib...
这个"Java的反射demo示例"很可能是包含了一些关于如何使用反射进行编程的代码实例。 反射的核心功能包括以下几点: 1. **获取类信息**:通过Class对象,我们可以获取到类的完整名称、类的属性、方法和构造器等信息...
接下来,我们讨论Java反射。反射是Java的一项强大的功能,它允许我们在运行时检查类、接口、字段和方法的信息,甚至可以在运行时创建和操作类的对象。`java.lang.Class`类是反射的核心,我们可以使用`Class.forName...
"玩转反射demo"这个主题旨在通过一个实际的示例来展示如何使用Java反射机制。在这个博客文章中,作者android_ku_ku详细解释了反射的概念,并提供了一个具体的代码示例来帮助理解。 反射的核心概念在于,它允许程序...
Java反射技术是Java编程语言中的一个强大工具,它允许程序在运行时检查和操作类、接口、字段和方法的信息,甚至能够动态调用方法和创建对象。这个技术的核心在于`java.lang.reflect`包中的类,如`Class`、`...
Java反射机制是Java编程语言中的一个重要特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心类包括`Class`、`Field`、`Method`和`Constructor`等,它们分别代表...
通过这个Demo,你可以了解到Java反射的基本用法,并能够将这些知识应用到实际项目中去。反射虽然强大,但需要注意其性能开销和安全风险,因此在使用时需谨慎。在设计程序时,除非必要,否则应尽量避免过度依赖反射。
Java反射是Java语言提供的一种强大的机制,它允许我们在运行时检查和操作类、接口、字段和方法等。本文将深入剖析Java反射的概念及其在实际开发中的应用。 首先,我们需要了解,反射的核心在于`java.lang.Class`类...
Java反射是Java编程语言的一个重要特性,它允许在运行时检查和操作类、接口、字段和方法等对象。反射提供了一种动态访问和修改程序的能力,使得代码可以在不知道具体类的情况下,对对象进行操作。 1. **Class类的...