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 + "}";
    }
}
相关推荐
FQNmxDG4S7 小时前
Java多线程编程:Thread与Runnable的并发控制
java·开发语言
前端老石人8 小时前
HTML 字符引用完全指南
开发语言·前端·html
matlab_xiaowang8 小时前
Redux 入门:JavaScript 可预测状态管理库
开发语言·javascript·其他·ecmascript
虹科网络安全8 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
axng pmje8 小时前
Java语法进阶
java·开发语言·jvm
rKWP8gKv79 小时前
Java微服务性能监控:Prometheus与Grafana集成方案
java·微服务·prometheus
老前端的功夫9 小时前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
qq_435287929 小时前
第9章 夸父逐日与后羿射日:死循环与进程终止?十个太阳同时值班的并行冲突
java·开发语言·git·死循环·进程终止·并行冲突·夸父逐日
小江的记录本9 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
止语Lab9 小时前
从手动到框架:Go DI 演进的三个拐点
开发语言·后端·golang