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

java反射

作者:穹上之月   发布日期:2025-02-18   浏览:55

// Java反射示例代码

import java.lang.reflect.Method;

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

            // 2. 创建类的实例
            Object instance = clazz.getDeclaredConstructor().newInstance();

            // 3. 获取方法对象
            Method addMethod = clazz.getMethod("add", Object.class);

            // 4. 调用方法
            addMethod.invoke(instance, "Hello, Reflection!");

            // 5. 获取并调用其他方法,例如size()
            Method sizeMethod = clazz.getMethod("size");
            int size = (int) sizeMethod.invoke(instance);
            System.out.println("Size of ArrayList: " + size);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

解释说明:

  1. 获取类的Class对象:通过Class.forName()方法可以动态加载一个类,并返回该类的Class对象。这里我们加载了java.util.ArrayList类。

  2. 创建类的实例:使用clazz.getDeclaredConstructor().newInstance()来创建ArrayList的一个实例。

  3. 获取方法对象:通过clazz.getMethod("add", Object.class)获取ArrayList类中的add方法,其中Object.class表示该方法需要一个Object类型的参数。

  4. 调用方法:使用addMethod.invoke(instance, "Hello, Reflection!")来调用ArrayList实例的add方法,并传入参数"Hello, Reflection!"

  5. 获取并调用其他方法:同样地,我们可以获取ArrayListsize方法,并调用它来获取当前ArrayList的大小。

这段代码展示了如何使用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 中文站