Java 反射练习

ReflectExercise1

java 复制代码
package ReflectExercise120240820;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

public class ReflectExercise1 {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
//        //1.获取整体的字节码文件对象
//        Class clazz = Class.forName("com.itheima.a02reflectdemo1.Student");
//        //2.获取空参的构造方法
//        Constructor con = clazz.getConstructor();
//        //3.利用空参构造方法创建对象
//        Student stu = (Student) con.newInstance();
//        System.out.println(stu);
//
//
//        System.out.println("=============================================");

        //需求2:
        //获取带参构造,并创建对象
        //1.获取整体的字节码文件对象
        Class clazz = Class.forName("com.itheima.a02reflectdemo1.Student");
        //2.获取有参构造方法
        Constructor con = clazz.getDeclaredConstructor(String.class, int.class);
        //3.临时修改构造方法的访问权限(暴力反射)
        con.setAccessible(true);
        //4.直接创建对象
        Student stu = (Student) con.newInstance("zhangsan", 23);
        System.out.println(stu);
    }
}

Student

java 复制代码
package ReflectExercise120240820;

public class Student {
    private String name;

    private int age;


    public Student() {

    }

    public Student(String name) {
        this.name = name;
    }

    private Student(String name, int age) {
        this.name = name;
        this.age = 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;
    }

    public String toString() {
        return "Student{name = " + name + ", age = " + age + "}";
    }
}
相关推荐
陌殇殇5 分钟前
Java使用IText7动态生成带审批文本框的PDF文档
java·pdf
wwww.wwww9 分钟前
Qt软件开发-摄像头检测使用软件V1.1
开发语言·c++·qt
weixin_4565881513 分钟前
【Maven】特殊pom.xml配置文件 - BOM
xml·java·maven
bjzhang7515 分钟前
如何创建一个父类 Maven项目,然后在父类下再创建子项目,构建多模块 Maven 项目
java·maven
lyrhhhhhhhh16 分钟前
Maven进阶
java·maven
sugar__salt36 分钟前
多线程(1)——认识线程
java·开发语言
Evand J1 小时前
MATLAB技巧——平滑滤波,给出一定的例程和输出参考
开发语言·matlab
妙极矣1 小时前
JAVAEE初阶01
java·学习·java-ee
碎叶城李白1 小时前
NIO简单群聊
java·nio