`

java反射实例

阅读更多
[color=indigo][color=indigo]public class Student{
  private Integer sex ;
  private String typeName ="good";
  private Date sysdate  ;
  ...
}

public class TestcopyBean{

public static Student getMap() {[color=indigo]

   Student map = new Student();
   map.setSex(new Integer(1));
   map.setTypeName( "hao");
   map.setSysdate(new Date());
       return map;
}

public static void merge(Student map)
    throws SecurityException, NoSuchFieldException,
    NoSuchMethodException, IllegalArgumentException,
    InvocationTargetException, ClassNotFoundException, InstantiationException, IllegalAccessException {

Class c=map.getClass();
Field[] fields = c.getDeclaredFields();//得到此类所有的字段
//根据传入对象的类型,构造一个新的对象  
Object o = c.newInstance();


Method setmethod = null;
for (int i = 0; i < fields.length; i++) {
String fieldName = fields[i].getName();
            String setMethod = "set" + fieldName.substring(0, 1).toUpperCase() +
            fieldName.substring(1);//根据字段名拼凑其set方法名
            String getMethod = "get"+ fieldName.substring(0, 1).toUpperCase() +
            fieldName.substring(1);
           //根据方法的名字,取得Method对象,下面两行语句分别取得了get和set方法对象 
            setmethod = c.getDeclaredMethod(setMethod,new Class[]{fields[i].getType()});
            Method getMothod=c.getMethod(getMethod, new Class[]{});
           
            Object value=getMothod.invoke(map, new Object[]{});  
            setmethod.invoke(o, new Object[]{value});  

}
Student beano = (Student)o;
System.out.println(beano.getSex()+" "+beano.getTypeName()+" "+beano.getSysdate());


   }

public static void main(String[] args) throws DocumentException, SecurityException, IllegalArgumentException, NoSuchFieldException, NoSuchMethodException, InvocationTargetException, ClassNotFoundException, InstantiationException, IllegalAccessException{

merge(getMap());
}[/color][/color][/color]
分享到:
评论
1 楼 wangsf 2009-12-23  
hao

相关推荐

    java反射实例代码

    在提供的"java反射实例代码"中,应该包含了如何使用上述方法的实际示例,这些示例有助于加深对Java反射机制的理解。通过阅读和运行这些代码,开发者可以更直观地学习如何在程序运行时动态地操作类、方法和字段,从而...

    java 反射实例,大量注释,简单易懂

    Java反射是Java编程语言中的一个重要特性,它允许程序在运行时检查类、接口、字段和方法的信息,并且能够在运行时创建和访问这些类的对象。在Java中,反射提供了对类对象的元数据(metadata)的访问,使得我们可以...

    Java反射实例源码

    标题"Java反射实例源码"表明我们将探讨如何通过源代码来实现和理解Java反射。这个实例可能包含了如何动态地创建对象、调用方法、访问字段和执行构造器的示例。 描述中提到的博客文章"菜鸟学编程(九)——Java反射...

    java反射实例.

    在标题和描述中提到的"java反射实例"是一个简单的入门程序,旨在演示如何使用反射来操作JavaBean的get和set方法。 首先,让我们理解JavaBean。JavaBean是一种符合特定规范的Java类,通常具有公有的getter和setter...

Global site tag (gtag.js) - Google Analytics