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);
    }
}
相关推荐
小猪皮蛋粥8 分钟前
python画图
开发语言·python
Felven9 分钟前
A. The 67th Integer Problem
开发语言
zopple11 分钟前
Laravel7.x核心特性全解析
开发语言·php·laravel
wjs202412 分钟前
MVC 应用程序
开发语言
studyForMokey12 分钟前
【Android面试】Java专题 todo
android·java·面试
lly20240613 分钟前
ionic 模态窗口:全面解析与最佳实践
开发语言
小白学大数据14 分钟前
解决 Python 爬虫被限制:延迟抓取指令深度解析
开发语言·c++·爬虫·python
一只大袋鼠17 分钟前
MyBatis 特性(三):缓存、延迟加载、注解开发
java·数据库·笔记·sql·缓存·mybatis
qq_120840937125 分钟前
Three.js 工程向:EffectComposer 后处理链路与色彩管理
开发语言·前端·javascript
老毛肚29 分钟前
Redis高级
java·数据库·redis