前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java-方法反射的基本操作

Java-方法反射的基本操作

作者头像
itze
发布于 2022-10-31 07:56:04
发布于 2022-10-31 07:56:04
28900
代码可运行
举报
文章被收录于专栏:IT者IT者
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class ClassDemo2 {
    /**
     * @Author: www.itze.cn
     * @Date: 2020/9/21 10:37
     * @Email: 814565718@qq.com
     */
    public static void main(String[] args) {
        /**
         * 要获取一个方法,就是获取一个类的信息,要获取类,就要先获取该类的类类型
         */
        A a = new A();
        Class<? extends A> aClass = a.getClass();
        /**
         * 获取方法
         * getMethod()获取的时所有public的方法
         * getDelcaredMethod()获取的时自己声明的方法
         */
        try {
            Method aClassDeclaredMethod = aClass.getMethod("print", new Class[]{int.class, int.class});
            /**
             * 方法的发射
             * 见到参数中出现...可以使用该类型的数组形式或者直接参数形式
             */
            //正常调用 a.print();
            aClassDeclaredMethod.invoke(a, new Object[]{1, 1});
            System.out.println("========================");
            Method method = aClass.getMethod("print", String.class, String.class);
            method.invoke(a, "hello", "Word");
            /**
             * 无参调用也是两种方式,
             * 方式一:getMethod("方法名","new Class[]{}")
             * 方式二:getMethod("方法名")
             */
            Method priMethod = aClass.getMethod("print");
            priMethod.invoke(a);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class A {
    public void print() {
        System.out.println("This No Param Method");
    }

    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());

    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年9月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java反射理解(五)-- 方法反射的基本操作
方法的反射 1. 如何获取某个方法 方法的名称和方法的参数列表才能唯一决定某个方法 2. 方法反射的操作 method.invoke(对象,参数列表) 举例 具体操作请看下面举例: import java.lang.reflect.Method; class A{ public void print(){ System.out.println("helloworld"); } public void print(int a,int b){ Syste
希希里之海
2019/07/22
4080
Java-通过反射了解集合泛型的本质
public class ClassDemo3 { /** * @Author: www.itze.cn * @Date: 2020/9/21 13:47 * @Email: 814565718@qq.com */ public static void main(String[] args) { ArrayList list = new ArrayList(); ArrayList<String> list2 = ne
itze
2022/10/31
2270
反射反射 程序员的快乐
java反射操作其实就是主要围绕Class,Field,Methon,Constructor等几个类来操作其中的方法
房上的猫
2018/04/11
9490
反射反射 程序员的快乐
关于Java的反射机制,你需要理解这些..
反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
方志朋
2017/12/29
5800
Java 高级开发必修知识---反射
程序猿们经常说的一句话:反射反射。。。程序员的快乐 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意一个方法和属性; 这种动态获取的信息
房上的猫
2018/04/16
8700
Java 高级开发必修知识---反射
Class工具类-获取类/成员变量/构造函数
public class ClassUtil { /** * @Author: www.itze.cn * @Date: 2020/9/17 16:08 * @Email: 814565718@qq.com * 打印类的信息,包括类的成员函数,变量 * @param object 该对象所属类的信息 */ public static void printClassMessage(Object object) { //
itze
2022/10/25
1.1K0
Class工具类-获取类/成员变量/构造函数
Java-反射
哈喽!大家好,我是小简。今天开始学习《Java-反射》,此系列是我做的一个 “Java 从 0 到 1 ” 实验,给自己一年左右时间,按照我自己总结的 Java-学习路线,从 0 开始学 Java 知识,并不定期更新所学笔记,期待一年后的蜕变吧!
小简
2023/01/04
4000
Java-反射
java-继承和多态
继承(inheritance) 继承满足“is-a”规则,即Manager is a Employee
卢衍飞
2023/02/16
3930
Java-反射
参考:https://mp.weixin.qq.com/s/UYqPCmo2vpAibJPh6cupLw
android_薛之涛
2018/12/25
5140
反射类的方法
关于对类的方法的反射。其中包括静态方法,普通方法,带参数的方法,以及最重要的String[]数组的方法的反射以及需要注意的细节问题,都是基础,所以请各位多多包涵!
MonroeCode
2018/01/11
1.2K0
20 Java 使用反射(Reflection) 和内省技术
反射(Reflection)是程序的自我分析能力,通过反射可以确定类有哪些方法、有哪些构造方法以及有哪些成员变量。Java语言提供了反射机制,通过反射机制能够动态读取一个类的信息;能够在运行时动态加载类,而不是在编译期。反射可以应用于框架开发,它能够从配置文件中读取配置信息动态加载类、创建对象,以及调用方法和成员变量。
acc8226
2022/05/17
4360
java注解和反射
共有 7 个,3 个在 java.lang 中,剩下 4 个在 java.lang.annotation 中。
不期而遇丨
2022/09/09
3740
Java-反射机制
调用类的Class对象的newInstance方法,该方法会调用对象的默认构造器,如果没有默认构造器,会调用失败..
用户7353950
2022/05/10
1580
Java反射(Class类)常用方法(附Xmind整理)
ClassLoader类加载器的作用就是将 .class 文件加载到JVM虚拟机中去。
ha_lydms
2023/08/09
3410
Java反射(Class类)常用方法(附Xmind整理)
Java反射机制深入详解
  反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。例如它允许一个java的类获取他所有的成员变量和方法并且显示出来。Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C 或者 C++ 中就没有办法在程序中获得函数定义相关的信息。 (来自Sun)
Java团长
2018/08/06
3120
Java学习之反射篇
今天简单来记录一下,反射与注解的一些东西,反射这个机制对于后面的java反序列化漏洞研究和代码审计也是比较重要。
全栈程序员站长
2022/07/13
2760
Spring-通过注解注入Bean的几种方式(二)
和注入List类型的大差不差 1. 在MyBean.java中生成Map的Set、Get方法,在Set方法上使用@Autowired注解,告诉Spring上下文环境中需要一个Map类型的Bean 2. 在BeanConfig.java上下文环境中生成Map类型的Bean,即创建返回值为Map的方法并在方法上方使用@Bean,将该方法交由Spring管理 3. 在Test.java获取上下文环境后通过getInitMap()方法获取注入的Map>>遍历打印输出
itze
2022/10/31
7590
Java反射Class类与类动态载
Class c = 基类.class (int,String,double,void等)
待你如初见
2018/08/01
8470
一文了解Java反射和应用
静态编译:在编译的时候进确定类型,如果绑定对象成功,new 是静态加载类,就编译通过。
Java技术江湖
2019/09/26
4100
一文了解Java反射和应用
Java反射基础
通过配置文件,在不修改源码的情况下来控制程序,符合设计模式中的开闭原则(ocp)。类似这样的需求在学习框架时特别常见。
堆栈哲学
2022/11/24
2220
Java反射基础
相关推荐
Java反射理解(五)-- 方法反射的基本操作
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验