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 + "}";
    }
}
相关推荐
weixin1997010801621 小时前
网易考拉商品详情页前端性能优化实战
java·前端·python·性能优化
Natalia_Portman21 小时前
springboot整合DolphinDB
java·数据库·spring boot·后端·db
hua8722221 小时前
【Springboot3+vue3】从零到一搭建Springboot3+vue3前后端分离项目之后端环境搭建
java
不光头强21 小时前
LinkedList知识点
java
IT北辰21 小时前
不规则 Excel“数据提取——教师课表自动汇总实战
开发语言·爬虫·python
跳跳鱼21 小时前
ThreadLocal 核心源码解析:属性、内部类与重要接口深度剖析
java
勿芮介21 小时前
【研发工具】OpenClaw基础环境安装全教程-Node\NVM\PNPM\Bash
开发语言·node.js·bash·ai编程
JamesYoung797121 小时前
第七部分 — 存储 数据建模与迁移提示
java·开发语言·数据结构
大志学java21 小时前
idea中切换分支后,项目目录不显示的问题
java·elasticsearch·intellij-idea
大尚来也21 小时前
超越“传参”:HTTP GET与POST的深度辨析与场景选型指南
开发语言