`

java反射demo

 
阅读更多

/**
 * 
 */
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("&amp;");
			}
			
		}
		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("&amp;");
			}
		}
		
		return sb.toString();
	}

}
分享到:
评论

相关推荐

    Java反射demo

    这个“Java反射demo”很可能是包含了一些示例代码,用于演示如何在实际开发中应用反射技术。以下是关于Java反射的详细知识点: 1. **什么是反射**: Java反射机制是在运行状态中,对于任意一个类,都能够知道这个...

    java反射Demo

    Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性在处理现实业务问题时尤其有用,例如实现插件化、元编程、动态代理等...

    java反射的demo代码

    Java反射是Java编程语言中的一个强大特性,它允许我们在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性在处理不确定类型、插件系统、序列化、元数据处理以及许多其他...

    java反射简单例子demo

    Java反射是Java编程语言中的一个强大特性,它允许运行时检查类、接口、字段和方法的信息,甚至可以动态地创建对象并调用其方法。在Java中,`java.lang.reflect`包提供了对反射的支持,包括`Class`、`Constructor`、`...

    java反射机制demo

    给同事写的反射机制的用法,非常简单易用,大家一看就懂。也便于初学者对反射机制的理解 资源免费提供大家下载,如有疑问,可以直接咨询我

    Java反射机制Demo

    ### Java反射机制详解 #### 一、什么是Java反射机制? Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的...

    Java反射演示Demo

    这个“Java反射演示Demo”是一个实例,展示了如何利用Java反射API进行各种操作。下面我们将深入探讨Java反射的核心概念及其在实际开发中的应用。 首先,我们需要了解什么是Java反射。在Java中,当我们编译一个程序...

    Java方法反射调用demo

    Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java具有了高度的灵活性,常用于框架开发、插件系统、元编程等...

    java cglib和反射demo

    Java中的CGLib与反射是两种常用的动态代理技术,它们在实现面向切面编程(AOP)时发挥着重要作用。本文将深入探讨这两种技术,并通过一个简单的AOP demo来阐述它们的使用方法。 首先,让我们了解什么是CGLib。CGLib...

    Java的反射demo示例

    这个"Java的反射demo示例"很可能是包含了一些关于如何使用反射进行编程的代码实例。 反射的核心功能包括以下几点: 1. **获取类信息**:通过Class对象,我们可以获取到类的完整名称、类的属性、方法和构造器等信息...

    Java动态代理和Java反射的Demo演示

    接下来,我们讨论Java反射。反射是Java的一项强大的功能,它允许我们在运行时检查类、接口、字段和方法的信息,甚至可以在运行时创建和操作类的对象。`java.lang.Class`类是反射的核心,我们可以使用`Class.forName...

    玩转反射demo

    "玩转反射demo"这个主题旨在通过一个实际的示例来展示如何使用Java反射机制。在这个博客文章中,作者android_ku_ku详细解释了反射的概念,并提供了一个具体的代码示例来帮助理解。 反射的核心概念在于,它允许程序...

    java反射技术Demo

    Java反射技术是Java编程语言中的一个强大工具,它允许程序在运行时检查和操作类、接口、字段和方法的信息,甚至能够动态调用方法和创建对象。这个技术的核心在于`java.lang.reflect`包中的类,如`Class`、`...

    Java反射机制测试Demo

    Java反射机制是Java编程语言中的一个重要特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心类包括`Class`、`Field`、`Method`和`Constructor`等,它们分别代表...

    Demo.rar_DEMO_java 反射

    通过这个Demo,你可以了解到Java反射的基本用法,并能够将这些知识应用到实际项目中去。反射虽然强大,但需要注意其性能开销和安全风险,因此在使用时需谨慎。在设计程序时,除非必要,否则应尽量避免过度依赖反射。

    java反射深入剖析(推荐)

    Java反射是Java语言提供的一种强大的机制,它允许我们在运行时检查和操作类、接口、字段和方法等。本文将深入剖析Java反射的概念及其在实际开发中的应用。 首先,我们需要了解,反射的核心在于`java.lang.Class`类...

    java反射.ppt

    Java反射是Java编程语言的一个重要特性,它允许在运行时检查和操作类、接口、字段和方法等对象。反射提供了一种动态访问和修改程序的能力,使得代码可以在不知道具体类的情况下,对对象进行操作。 1. **Class类的...

Global site tag (gtag.js) - Google Analytics