Java中反射的使用

无参构造器 + 方法的调用

bash 复制代码
package com.studio;

import java.lang.reflect.Method;

class User {
    private String name;
    /*无参构造器*/
    public User() {
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "User [name=" + name + "]";
    }
}

public class ReflectTest {
    public static void main(String[] args) throws Exception {
        // 加载类字节码
        Class<?> clazz = ReflectTest.class.getClassLoader().loadClass("com.studio.User");
        // 使用默认构造器创建对象
        Object instance = clazz.getConstructor().newInstance();
        // 获取方法(方法名+参数类型)
        Class<?> paramTypes[] = new Class[1];
        paramTypes[0] = Class.forName("java.lang.String");
        Method method = instance.getClass().getMethod("setName", paramTypes);
        // 调用方法(this+参数)
        Object paramValues[] = new Object[1];
        paramValues[0] = "小明";
        method.invoke(instance, paramValues);
        System.out.println(instance);
    }
}
相关推荐
小咕聊编程3 小时前
【含文档+PPT+源码】基于java web的篮球馆管理系统系统的设计与实现
java·开发语言
后端小张3 小时前
【JAVA 进阶】Mybatis-Plus 实战使用与最佳实践
java·spring boot·spring·spring cloud·tomcat·mybatis·mybatis plus
崎岖Qiu3 小时前
【设计模式笔记07】:迪米特法则
java·笔记·设计模式·迪米特法则
我狸才不是赔钱货4 小时前
Python的“环境之殇”:从Venv到Conda的终极抉择
开发语言·python·conda
努力进修4 小时前
Rust 语言入门基础教程:从环境搭建到 Cargo 工具链
开发语言·后端·rust
摇滚侠5 小时前
Spring Boot3零基础教程,SpringApplication 自定义 banner,笔记54
java·spring boot·笔记
青云交5 小时前
Java 大视界 -- Java 大数据机器学习模型在游戏用户行为分析与游戏平衡优化中的应用
java·大数据·机器学习·数据存储·模型构建·游戏用户行为分析·游戏平衡优化
暗武逢天8 小时前
Java导出写入固定Excel模板数据
java·导出数据·easyexcel·excel固定模板导出
摇滚侠8 小时前
Spring Boot3零基础教程,KafkaTemplate 发送消息,笔记77
java·spring boot·笔记·后端·kafka
杯莫停丶9 小时前
设计模式之:模板模式
开发语言·设计模式