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);
    }
}
相关推荐
南境十里·墨染春水4 小时前
C++ 笔记 深赋值 浅赋值(面向对象)
开发语言·jvm·c++·笔记
Lyyaoo.4 小时前
【JAVA基础面经】JAVA的面向对象特性
java·开发语言·windows
浮游本尊4 小时前
Java学习第37天 - 领域驱动设计(DDD)与 CQRS 实战
java
米糕闯编程4 小时前
xshell使用CentOS10 root用户登录,权限问题
java·linux
sxhcwgcy4 小时前
Python中的简单爬虫
java
小温冲冲4 小时前
Qt WindowContainer 完整实战示例:QWidget 嵌入 QML
开发语言·数据库·qt
xiaoliuliu123454 小时前
Android Studio 2025 安装教程:详细步骤+自定义安装路径+SDK配置(附桌面快捷方式创建)
java·前端·数据库
老前端的功夫4 小时前
【Java从入门到入土】21:List三剑客:ArrayList、LinkedList、Vector的爱恨情仇
java·javascript·网络·python·list
MyBFuture4 小时前
Halcon条形码与二维码识别全攻略
开发语言·人工智能·halcon·机器视觉
SAP小崔说事儿4 小时前
SAP B1 批量应用用户界面配置模板
java·前端·ui·sap·b1·无锡sap