黑马程序员技术交流社区
标题:
定义一个标准的JavaBean,使用反射的方式创建一个实例、
[打印本页]
作者:
王训印
时间:
2015-8-7 10:17
标题:
定义一个标准的JavaBean,使用反射的方式创建一个实例、
package com.itheima2;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/*
* 第六题: 定义一个标准的JavaBean,名叫Person,包含属性name、age。使用反射的方式创建一个实例、调用构造函数初始化name、age,使用反射方式调用
* setName方法对名称进行设置,不使用setAge方法直接使用反射方式对age赋值。
*
* @author wxy
*
*/
public class Test6
{
public static void main(String[] args) throws Exception
{
getConstructor();
}
public static void getConstructor() throws Exception
{
Class<?> clazz = Class.forName("com.itheima2.Person"); //反射第一步获得要操作的类对象
//使用反射的方式创建一个实例、调用构造函数初始化name、age
Constructor<?> constructor = clazz.getConstructor(String.class,int.class);
Method method = clazz.getMethod("setName", String.class);
Object obj = constructor.newInstance("lisi",24);
//使用反射方式调用setName方法对名称进行设置
method.invoke(obj, "wang");
}
}
class Person
{
private String name;
private int age;
public Person() {
super();
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
System.out.println("name:"+name+":---:"+"age:"+age);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
System.out.println(name);
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2