- 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;
- }
- }
复制代码 |
|