java反射之方法反射的基本操作方法
发布时间 - 2026-01-11 01:43:14 点击率:次本文接上文“java反射之获取类的信息方法(推荐)”,利用反射(invoke)来获取一个类中的方法来执行。

1、定义一个类,包含三个名称相同,参数不同的方法
class A{
public void print(){
System.out.println("Hello,World");
}
public void print(int a,int b){
System.out.println(a+b);
}
public void print(String a,String b){
System.out.println(a.toUpperCase()+","+b.toLowerCase());
}
}
2、利用方法的反射(invoke)分别获取该类三个方法并执行
public class Test {
public static void main(String[] args) {
/**
* 获取print(int,int)方法
* 1、获取类的类类型
*/
A a1 = new A();
Class clazz = a1.getClass();
/**
* 2、获取方法(名称、参数列表)
* getMethod()获取的是public方法
* getDeclaredMethod()获取的是自己声明的方法
*/
try {
// Method m = clazz.getMethod("print",new Class[]{int.class,int.class});
Method m = clazz.getMethod("print", int.class, int.class);
//方法的反射操作,用m对象进行方法调用,a1.print完全相同
//方法没有返回值返回null,有返回值返回具体的返回值
// Object obj = m.invoke(a1,new Object[]{10,20});
Object obj = m.invoke(a1,10,20);
System.out.println("================================================");
Method m2 = clazz.getMethod("print", String.class, String.class);
m2.invoke(a1,"aaa","BBB");
System.out.println("================================================");
Method m3 = clazz.getMethod("print");
m3.invoke(a1);
} catch (Exception e) {
e.printStackTrace();
}
}
}
3、完整代码
package com.format.test;
import java.lang.reflect.Method;
/**
* Created by Format on 2017/6/3.
*/
public class Test {
public static void main(String[] args) {
/**
* 获取print(int,int)方法
* 1、获取类的类类型
*/
A a1 = new A();
Class clazz = a1.getClass();
/**
* 2、获取方法(名称、参数列表)
* getMethod()获取的是public方法
* getDeclaredMethod()获取的是自己声明的方法
*/
try {
// Method m = clazz.getMethod("print",new Class[]{int.class,int.class});
Method m = clazz.getMethod("print", int.class, int.class);
//方法的反射操作,用m对象进行方法调用,a1.print完全相同
//方法没有返回值返回null,有返回值返回具体的返回值
// Object obj = m.invoke(a1,new Object[]{10,20});
Object obj = m.invoke(a1,10,20);
System.out.println("================================================");
Method m2 = clazz.getMethod("print", String.class, String.class);
m2.invoke(a1,"aaa","BBB");
System.out.println("================================================");
Method m3 = clazz.getMethod("print");
m3.invoke(a1);
} catch (Exception e) {
e.printStackTrace();
}
}
}
class A{
public void print(){
System.out.println("Hello,World");
}
public void print(int a,int b){
System.out.println(a+b);
}
public void print(String a,String b){
System.out.println(a.toUpperCase()+","+b.toLowerCase());
}
}
4、执行结果
以上这篇java反射之方法反射的基本操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# java反射方法
# Java方法反射实现原理详解
# 的是
# 返回值
# 给大家
# 完全相同
# 希望能
# 这篇
# 方法来
# 小编
# 大家多多
# 操作方法
# 类中
# World
# toLowerCase
# Test
# String
# toUpperCase
# int
# Class
# clazz
# static
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
javascript如何操作浏览器历史记录_怎样实现无刷新导航
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
如何确认建站备案号应放置的具体位置?
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
如何快速打造个性化非模板自助建站?
Laravel如何配置任务调度?(Cron Job示例)
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
如何在景安服务器上快速搭建个人网站?
公司网站制作价格怎么算,公司办个官网需要多少钱?
Swift中switch语句区间和元组模式匹配
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
nodejs redis 发布订阅机制封装实现方法及实例代码
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
如何挑选高效建站主机与优质域名?
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
Laravel怎么判断请求类型_Laravel Request isMethod用法
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
焦点电影公司作品,电影焦点结局是什么?
如何在橙子建站上传落地页?操作指南详解
Bootstrap整体框架之CSS12栅格系统
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
Laravel如何实现API资源集合?(Resource Collection教程)
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
在线教育网站制作平台,山西立德教育官网?
如何在阿里云香港服务器快速搭建网站?
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
用v-html解决Vue.js渲染中html标签不被解析的问题
EditPlus中的正则表达式 实战(4)
Laravel Fortify是什么,和Jetstream有什么关系
如何在阿里云通过域名搭建网站?
开心动漫网站制作软件下载,十分开心动画为何停播?
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
Laravel storage目录权限问题_Laravel文件写入权限设置
jQuery中的100个技巧汇总
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
JavaScript如何实现类型判断_typeof和instanceof有什么区别
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
Laravel如何为API生成Swagger或OpenAPI文档
大同网页,大同瑞慈医院官网?
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
原生JS获取元素集合的子元素宽度实例
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
如何用wdcp快速搭建高效网站?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?

