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

java的反射机制

作者:冷视天下   发布日期:2025-06-18   浏览:102

// Java反射机制示例代码

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

class Person {
    private String name;
    private int age;

    public Person() {}

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

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

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

            // 创建对象实例(无参构造函数)
            Constructor<?> constructor1 = personClass.getConstructor();
            Object personInstance1 = constructor1.newInstance();
            System.out.println("Created instance using no-arg constructor.");

            // 创建对象实例(带参构造函数)
            Constructor<?> constructor2 = personClass.getConstructor(String.class, int.class);
            Object personInstance2 = constructor2.newInstance("Alice", 30);
            System.out.println("Created instance using parameterized constructor.");

            // 调用方法
            Method sayHelloMethod = personClass.getMethod("sayHello");
            sayHelloMethod.invoke(personInstance2);  // 输出: Hello, my name is Alice and I am 30 years old.
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

解释说明:

  1. 获取类的Class对象:通过Class.forName("Person")获取Person类的Class对象。
  2. 创建对象实例
    • 使用无参构造函数创建对象实例:personClass.getConstructor().newInstance()
    • 使用带参构造函数创建对象实例:personClass.getConstructor(String.class, int.class).newInstance("Alice", 30)
  3. 调用方法:通过getMethod("sayHello")获取sayHello方法,并使用invoke方法调用该方法。

这段代码展示了如何使用Java反射机制来动态地创建对象和调用方法。

上一篇:java 日期

下一篇:java异或运算

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

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

Laravel 中文站