Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java反射机制

作者:我视你如狗ㄟ   发布日期:2026-02-16   浏览:114

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

class Person {
    private String name;
    private int age;

    private Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    private void sayHello() {
        System.out.println("Hello, my name is " + name + " and I am " + age + " years old.");
    }

    public static void main(String[] args) throws Exception {
        // 获取Person类的Class对象
        Class<?> personClass = Class.forName("Person");

        // 获取私有构造方法
        Constructor<?> constructor = personClass.getDeclaredConstructor(String.class, int.class);
        constructor.setAccessible(true); // 设置构造方法可访问

        // 创建Person对象
        Object personInstance = constructor.newInstance("Alice", 25);

        // 获取私有方法
        Method sayHelloMethod = personClass.getDeclaredMethod("sayHello");
        sayHelloMethod.setAccessible(true); // 设置方法可访问

        // 调用私有方法
        sayHelloMethod.invoke(personInstance);
    }
}

解释说明:

  1. 获取Class对象:通过Class.forName("Person")获取Person类的Class对象。
  2. 获取构造方法:使用getDeclaredConstructor方法获取Person类的私有构造方法,并通过setAccessible(true)使其可访问。
  3. 创建对象实例:使用newInstance方法创建Person类的实例。
  4. 获取方法:使用getDeclaredMethod方法获取Person类的私有方法,并通过setAccessible(true)使其可访问。
  5. 调用方法:使用invoke方法调用Person类的私有方法。

这段代码展示了如何使用Java反射机制来访问和调用类的私有构造方法和私有方法。

上一篇:java初始化数组

下一篇:java map 排序

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

java读取excel中的图片

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站