标签:mode 获取 指定 method void rri 对象创建 operator 学生
A. setter方法的方法名由set和属性名(首字母大写)组成:
举例:setName,setAge
B. setter方法有且只有一个参数,参数类型为属性的类型:
举例:setName(String name),setAge(int age)
C. setter方法为public 修饰的方法,反射获取该方法使用:
getMethod(String,Class<?>...);
D. 根据上述分析分别为属性name、age赋值并使用
package cn.itcast.demo32;
?
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
?
public class ReflectDemo01 {
public static void main(String[] args) throws Exception {
//需求:通过反射获取类的setter方法,使用该方法为属性赋值
//1.通过反射获取Student类的字节码文件对象
Class clazz = Class.forName("cn.itcast.demo32.Student");
//2.通过反射获取Student类的构造方法,并创建该类的对象(调用成员方法势必要有对象)
Constructor con = clazz.getConstructor();
Student stu = (Student) con.newInstance();//学生对象创建完成
?
//3.获取到指定的setName()方法,给Student对象设置值
Method method1 = clazz.getMethod("setName", String.class);
//调用此方法
method1.invoke(stu,"豆豆");
?
?
//4.打印学生对象
System.out.println(stu);
?
}
}
?
package cn.itcast.demo32;
//标准的JavaBean类 学生类
public class Student {
//成员变量
private String name;
?
//空参构造
public Student(){
?
}
//带参构造
public Student(String name){
this.name = name;
}
//getXxx和setXxx()方法
public String getName(){
return name;
?
}
public void setName(String name){
this.name = name;
}
//toString()方法,用来打印该对象的各个属性值的
?
?
标签:mode 获取 指定 method void rri 对象创建 operator 学生
原文地址:https://www.cnblogs.com/doudoutj/p/14395489.html