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);
    }
}
相关推荐
Dxy123931021629 分钟前
python 中的 APScheduler 使用详解
开发语言·python
zzh___zzh1 小时前
SQL 窗口函数 ROW_NUMBER、RANK、DENSE_RANK 常用方法笔记
java
计科土狗1 小时前
GESP六级专题之类与对象
java·前端·数据库
福如意如我心意2 小时前
java虚拟线程和Go协程的区别
开发语言
Slow菜鸟2 小时前
第3篇:实操落地篇 · 3套企业标准工作流(IDEA可视化版)
java·ide·intellij-idea
weixin_440784112 小时前
Java基础常见题
java·开发语言·python·java基础
掉鱼的猫2 小时前
Hot-Plug 实战:运行期管理 Solon 插件
java·hotfix
(Charon)2 小时前
【C++】多线程死锁:产生原因、复现与解决方法
开发语言·c++·算法
markinmarkin2 小时前
Spring 中有哪些方式可以把Bean 注入到IOC 容器?
java·spring
跨境小彭2 小时前
Python列表去重的6种高效方法(含保留顺序+性能对比)
开发语言·python