A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小悠久 中级黑马   /  2014-1-10 21:46  /  759 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

定义一个标准的JavaBean,名叫Person,包含属性name、age。
使用反射的方式创建一个实例、调用构造函数初始化name、age,使用反射方式调用setName方法对名称进行设置,不使用setAge方法直接使用反射方式对age赋值。

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Test8 {
/**
  */
public static void main(String[] args) throws Exception {
  // TODO Auto-generated method stub
         person p =new person();
         Class c = p.getClass();
         //对name和age进行初始化
         p.Person("张三", 15);
       //调用setName方法
         Method m = c.getMethod("setName",String.class);
       //将"李四"传递个name
       m.invoke(p, "李四");
       //获取person类中成员变量age
       Field f = c.getField("age");
       //将30赋给age
       f.setInt(p,30);
       //输出改变后的名字和年龄
       System.out.println("\n改变后:\n"+p.getName()+":"+p.getAge());
       System.out.println();
       System.out.println();  
}
}
class person{
public String name;
public int age;
//进行初始化
public void Person(String name,int i){
  this.name=name;
  this.age=i;
  System.out.println(name+":"+age);
}
public String getName()
{
  return name;
}
public void setName(String name)
{
  this.name = name;
}
public int getAge()
{
  return age;
}
public void setAge(int age)
{
  this.age = age;
}
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马