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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package com.itheima2;
  2. import java.lang.reflect.Constructor;  
  3. import java.lang.reflect.InvocationTargetException;  
  4. import java.lang.reflect.Method;

  5. /*
  6. * 第六题: 定义一个标准的JavaBean,名叫Person,包含属性name、age。使用反射的方式创建一个实例、调用构造函数初始化name、age,使用反射方式调用
  7. * setName方法对名称进行设置,不使用setAge方法直接使用反射方式对age赋值。
  8. *
  9. * @author wxy
  10. *
  11. */

  12. public class Test6
  13. {

  14.     public static void main(String[] args) throws Exception
  15.     {  
  16.         getConstructor();  
  17.     }  
  18.     public static void getConstructor() throws Exception  
  19.     {  
  20.         Class<?> clazz = Class.forName("com.itheima2.Person");  //反射第一步获得要操作的类对象
  21.         //使用反射的方式创建一个实例、调用构造函数初始化name、age
  22.         Constructor<?> constructor = clazz.getConstructor(String.class,int.class);  
  23.         Method method = clazz.getMethod("setName", String.class);  
  24.         Object obj = constructor.newInstance("lisi",24);  
  25.       //使用反射方式调用setName方法对名称进行设置
  26.         method.invoke(obj, "wang");  
  27.                
  28.     }  
  29.    
  30. }

  31. class Person
  32. {  
  33.     private String name;  
  34.     private int age;  
  35.       
  36.     public Person() {  
  37.         super();  
  38.          
  39.     }  
  40.     public Person(String name, int age) {  
  41.         super();  
  42.         this.name = name;  
  43.         this.age = age;  
  44.         System.out.println("name:"+name+":---:"+"age:"+age);  
  45.     }  
  46.     public String getName() {  
  47.         return name;  
  48.     }  
  49.     public void setName(String name) {  
  50.         this.name = name;  
  51.         System.out.println(name);  
  52.     }  
  53.     public int getAge() {  
  54.         return age;  
  55.     }  
  56.     public void setAge(int age) {  
  57.         this.age = age;  
  58.     }  
  59. }  
复制代码

0 个回复

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