java反射invoke方法(java中invoke()的作用是什么)

2026-05-28 08:00:01 :0

java反射invoke方法(java中invoke()的作用是什么)

大家好,java反射invoke方法相信很多的网友都不是很明白,包括java中invoke()的作用是什么也是一样,不过没有关系,接下来就来为大家分享关于java反射invoke方法和java中invoke()的作用是什么的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

java中invoke()的作用是什么

用来执行一个方法,是反射中知识 。

就是调用类中的方法,最简单的用法是可以把方法参数化invoke(class, method)。

比如你Test类里有一系列名字相似的方法setValue1、setValue2等等。

可以把方法名存进数组v),就顺序调用了全部setValue。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程

在JAVA中,怎么利用反射获取一个方法

java中利用反射获取方法:

1.先找到方法所在类的字节码

2.找到需要被获取的方法

Class类中获取方法:

public Method getMethods();获取包括自身和继承(实现)过来的所有的public方法——Method不支持泛型《》,即后面不接《》

public Method getDeclaredMethods();获取自身所有的方法(private、public、protected,和访问权限无关),不包括继承的

public Method getMethod(String methodName, Class《T》...parameterTypes);表示获取指定的一个公共的方法,包括继承的

参数: methodName:表示获取的方法的名字

parameterTypes:表示获取的方法的参数的Class类型

public Method getDeclaredMethod(String methodName, Class《T》...parameterTypes);//表示获取本类中的一个指定的方法(private、protected、public,与访问权限无关),不包括继承的方法。

参数:methodName: 表示被调用方法的名字

parameterTypes:表示被调用方法的参数的Class类型如String.class只有通过方法签名才能找到唯一的方法,方法签名=方法名+参数列表(参数类型、参数个数、参数顺序)。

public Method getDeclaredMethod(String name,Class... parameterTypes):表示调用指定的一个本类中的方法(不包括继承的)

参数: methodName: 表示被调用方法的名字

parameterTypes:表示被调用方法的参数的Class类型如String.class

举例:

class P{
public void t1(){}
void t2(){}
private void t3(){}
}
class People extends P{
public void sayHi() {
    System.out.println("sayHi()");
}
public void sayHello(String name) {
    System.out.println("sayHello(String name)   " + "name = " + name);
}
private void sayGoodBye(String name, int age) {
    System.out.println("sayGoodBye(String name, int age)   " + "name = " + name + "  age = " + age);
}
}
public class MethodDemo {
public static void main(String args) throws Exception {
    Class clazz = People.class;
    //获取类自身及父类所有public方法
    Method ms = clazz.getMethods();
    for (Method m : ms) {
        System.out.println(m);
    }
    System.out.println("---------------------------");
    //获取类自身所有方法(不会获取父类方法)
    ms = clazz.getDeclaredMethods();
    for (Method m : ms) {
        System.out.println(m);
    }
    System.out.println("---------------------------");
    //只能获取父类中的public方法,无法获取到父类的默认权限和private权限方法
    Method m = clazz.getMethod("t1", null);//public void com.reflex.P.t1()
    System.out.println(m);
    m = clazz.getMethod("sayHello", String.class);
    System.out.println(m);
    //Exception in thread "main" java.lang.NoSuchMethodException: com.reflex.People.sayGoodBye(java.lang.String, int)
    //getMethod方法只能获取public的
//        m = clazz.getMethod("sayGoodBye", String.class,int.class);
//        System.out.println(m);
    m = clazz.getDeclaredMethod("sayGoodBye", String.class,int.class);
    System.out.println(m);
    //带Declared的无法获取父类中的方法
//        m = clazz.getDeclaredMethod("t1", null);//Exception in thread "main" java.lang.NoSuchMethodException:com.reflex.People.t1()
//        System.out.println(m);
}
}

通过反射获取 private voidfunction( ) () 方法并调用

在Java中,可以使用反射机制来获取和调用类中的私有方法。以下是一段示例代码,用于演示如何通过反射获取和调用私有方法:

在上述代码中,首先创建了一个ReflectionDemo类的实例obj,然后使用getDeclaredMethod方法获取了名为voidFunction的私有方法,并将其封装到一个Method对象中。

由于该方法是私有的,需要使用setAccessible方法取消访问限制,才能够对其进行访问和调用。

最后,使用invoke方法调用该方法,并传入需要调用的对象作为参数。这里我们将obj作为参数传递给invoke方法,表示要对obj对象调用voidFunction方法。

需要注意的是,在使用反射调用私有方法时,需要小心使用,因为这种方式会绕过Java语言的访问控制机制,可能会对系统的安全性产生影响。

Java反射invoke怎么用

Java反射中invoke的用法,我给你个例子,你看看吧(每一句都有注释)

import java.lang.reflect.Method;

import java.lang.reflect.Constructor;

public class S{

 public void test(){

  System.out.println("test");

 }

 public static void main(String args) throws Exception {

  //获取S类

  Class clzz = Class.forName("S");

  //获取S类默认无参构造方法

  Constructor con = clzz.getDeclaredConstructor();

   //创建一个S类实例对象

   S s =(S)con.newInstance();

   //获取S类的公有成员方法test

  Method m=clzz.getDeclaredMethod("test");

  //调用S类对象s中的公有成员方法test

  m.invoke(s);

 }

}

以上就是我们为大家找到的有关“java反射invoke方法(java中invoke()的作用是什么)”的所有内容了,希望可以帮助到你。如果对我们网站的其他内容感兴趣请持续关注本站。

java反射invoke方法(java中invoke()的作用是什么)

本文编辑:admin

本文相关文章:


action属性值(action元素有哪些属性作用是什么)

action属性值(action元素有哪些属性作用是什么)

本篇文章给大家谈谈action属性值,以及action元素有哪些属性作用是什么对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录action元素有哪些属性作用是什么表单标记的action属性值为true/false(转)如何用j

2026年9月22日 07:30

actionlistener接口使用教程(请说明Action接口有什么作用(JSP相关))

actionlistener接口使用教程(请说明Action接口有什么作用(JSP相关))

今天给各位分享请说明Action接口有什么作用(JSP相关)的知识,其中也会对请说明Action接口有什么作用(JSP相关)进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录请说明Action接口有什么作用(JS

2026年9月21日 08:15

高级数据库存储过程(数据库中什么是存储过程作用是什么)

高级数据库存储过程(数据库中什么是存储过程作用是什么)

各位老铁们好,相信很多人对高级数据库存储过程都不是特别的了解,因此呢,今天就来为大家分享下关于高级数据库存储过程以及数据库中什么是存储过程作用是什么的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录数据库中什么是存

2026年9月14日 18:15

javaajax请求(ajax基础(java),请求URL有什么作用)

javaajax请求(ajax基础(java),请求URL有什么作用)

大家好,如果您还对javaajax请求不太了解,没有关系,今天就由本站为大家分享javaajax请求的知识,包括ajax基础(java),请求URL有什么作用的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录ajax

2026年9月9日 09:30

图形控件有哪些(VB里面的picture是什么意思,作用是什么)

图形控件有哪些(VB里面的picture是什么意思,作用是什么)

各位老铁们好,相信很多人对图形控件有哪些都不是特别的了解,因此呢,今天就来为大家分享下关于图形控件有哪些以及VB里面的picture是什么意思,作用是什么的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录VB里面的

2026年8月28日 20:00

server服务器的作用(服务器有什么作用(简单点)服务器相当于电话通信的什么设备)

server服务器的作用(服务器有什么作用(简单点)服务器相当于电话通信的什么设备)

“server服务器的作用”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看server服务器的作用(服务器有什么作用(简单点)服务器相当于电话通信的什么设备)!本文目录服务器有什么作用(简单点)服务器相当于电话通信的什么设备

2026年8月28日 18:15

api有什么作用(api的作用)

api有什么作用(api的作用)

大家好,关于api有什么作用很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于api的作用的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录api的作用AP

2026年8月20日 14:30

c语言二级证书(二级C语言的证书作用)

c语言二级证书(二级C语言的证书作用)

本篇文章给大家谈谈c语言二级证书,以及二级C语言的证书作用对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录二级C语言的证书作用c语言证书全称

2026年8月11日 21:00

氨咖黄敏胶囊(氨咖黄敏胶囊的功效与作用)

氨咖黄敏胶囊(氨咖黄敏胶囊的功效与作用)

“氨咖黄敏胶囊”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看氨咖黄敏胶囊(氨咖黄敏胶囊的功效与作用)!本文目录氨咖黄敏胶囊的功效与作用氨咖黄敏胶囊能喝酒吗氨咖黄敏胶囊治风热还是风寒感冒氨咖黄敏胶囊怎么读氨咖黄敏胶囊的功效与

2026年8月6日 15:00

数据库引擎面试题(一道面试题 :sql server 2000有哪些数据库系统,它们各自的作用是什么)

数据库引擎面试题(一道面试题 :sql server 2000有哪些数据库系统,它们各自的作用是什么)

“数据库引擎面试题”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看数据库引擎面试题(一道面试题 :sql server 2000有哪些数据库系统,它们各自的作用是什么)!本文目录一道面试题 :sql server 2000有

2026年7月20日 14:45

更多文章:


java中swithcase(Java中为什么我写switch语句,在case后加break就错误,不加就正确,很困惑,)

java中swithcase(Java中为什么我写switch语句,在case后加break就错误,不加就正确,很困惑,)

本篇文章给大家谈谈java中swithcase,以及Java中为什么我写switch语句,在case后加break就错误,不加就正确,很困惑,对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助

2026年5月14日 02:30

oracle vm virtualbox 的配置(oracle vm virtualbox 中如何设置外设SD卡)

oracle vm virtualbox 的配置(oracle vm virtualbox 中如何设置外设SD卡)

大家好,关于oracle vm virtualbox 的配置很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于oracle vm virtualbox 中如何设置外设SD卡的知识点,相信应该可以解决大家的一些困惑和问题,如果碰

2025年12月22日 12:00

decision英语怎么读(decision的意思)

decision英语怎么读(decision的意思)

今天给各位分享decision的意思的知识,其中也会对decision的意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录decision的意思decision是 意思decision怎么读 decision

2025年9月28日 14:45

java多线程需要掌握的知识点(java主要是学习什么啊)

java多线程需要掌握的知识点(java主要是学习什么啊)

大家好,今天小编来为大家解答以下的问题,关于java多线程需要掌握的知识点,java主要是学习什么啊这个很多人还不知道,现在让我们一起来看看吧!本文目录java主要是学习什么啊学习Java需要学哪些内容java主要是学习什么啊很多新手在学习

2025年7月6日 01:15

停止沸腾的水浇上冷水后会沸腾原理(烧瓶中停止沸腾的水,浇上冷水后会重新沸腾,说明)

停止沸腾的水浇上冷水后会沸腾原理(烧瓶中停止沸腾的水,浇上冷水后会重新沸腾,说明)

“停止沸腾的水浇上冷水后会沸腾原理”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看停止沸腾的水浇上冷水后会沸腾原理(烧瓶中停止沸腾的水,浇上冷水后会重新沸腾,说明)!本文目录烧瓶中停止沸腾的水,浇上冷水后会重新沸腾,说明停止

2025年5月29日 20:15

加ous变成形容词(名词加ous变形容词的单词)

加ous变成形容词(名词加ous变形容词的单词)

其实加ous变成形容词的问题并不复杂,但是又很多的朋友都不太了解名词加ous变形容词的单词,因此呢,今天小编就来为大家分享加ous变成形容词的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录名词加ous变形容词的单

2026年1月5日 11:45

字体颜色指令(以闪亮之名字体怎么变颜色)

字体颜色指令(以闪亮之名字体怎么变颜色)

今天给各位分享以闪亮之名字体怎么变颜色的知识,其中也会对以闪亮之名字体怎么变颜色进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录以闪亮之名字体怎么变颜色迷你世界字体怎么变颜色以闪亮之名字体怎么变颜色在文字前面加

2026年9月3日 16:30

javabus怎么上不去了(为什么JAV连续几天都登不上去)

javabus怎么上不去了(为什么JAV连续几天都登不上去)

大家好,今天小编来为大家解答以下的问题,关于javabus怎么上不去了,为什么JAV连续几天都登不上去这个很多人还不知道,现在让我们一起来看看吧!本文目录为什么JAV连续几天都登不上去javbus手机可以打开电脑打不开javbus 怎么上不

2026年3月30日 04:30

verifysignaturefailed总是跳出怎样解决(vivox3升级funtouch出现了signature verification failed怎么恢复)

verifysignaturefailed总是跳出怎样解决(vivox3升级funtouch出现了signature verification failed怎么恢复)

大家好,如果您还对verifysignaturefailed总是跳出怎样解决不太了解,没有关系,今天就由本站为大家分享verifysignaturefailed总是跳出怎样解决的知识,包括vivox3升级funtouch出现了signatu

2026年7月19日 12:45

personality16官网(16人格测试官网进不了)

personality16官网(16人格测试官网进不了)

大家好,personality16官网相信很多的网友都不是很明白,包括16人格测试官网进不了也是一样,不过没有关系,接下来就来为大家分享关于personality16官网和16人格测试官网进不了的一些知识点,大家可以关注收藏,免得下次来找不

2025年12月24日 05:45

威斯布鲁克生涯数据统计(威斯布鲁克离开湖人到快船场均多少分威少离开湖人到快船场均得分夕夕少)

威斯布鲁克生涯数据统计(威斯布鲁克离开湖人到快船场均多少分威少离开湖人到快船场均得分夕夕少)

这篇文章给大家聊聊关于威斯布鲁克生涯数据统计,以及威斯布鲁克离开湖人到快船场均多少分威少离开湖人到快船场均得分夕夕少对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录威斯布鲁克离开湖人到快船场均多少分威少离开湖人到快船场均得分夕

2025年6月7日 15:00

存储过程的理解(oracle中的存储过程有什么作用,该怎么理解(数据更新的话用update语句不就完了吗))

存储过程的理解(oracle中的存储过程有什么作用,该怎么理解(数据更新的话用update语句不就完了吗))

大家好,如果您还对存储过程的理解不太了解,没有关系,今天就由本站为大家分享存储过程的理解的知识,包括oracle中的存储过程有什么作用,该怎么理解(数据更新的话用update语句不就完了吗)的问题都会给大家分析到,还望可以解决大家的问题,下

2025年8月12日 19:30

linux重启网卡(请问linux配置网卡后,单独关掉网卡和重启网卡的命令是什么)

linux重启网卡(请问linux配置网卡后,单独关掉网卡和重启网卡的命令是什么)

大家好,linux重启网卡相信很多的网友都不是很明白,包括请问linux配置网卡后,单独关掉网卡和重启网卡的命令是什么也是一样,不过没有关系,接下来就来为大家分享关于linux重启网卡和请问linux配置网卡后,单独关掉网卡和重启网卡的命令

2026年5月13日 20:45

field是姓氏吗(求F开头的英文姓氏 有适合女生的姓氏吗(我知道姓氏不分男女))

field是姓氏吗(求F开头的英文姓氏 有适合女生的姓氏吗(我知道姓氏不分男女))

本篇文章给大家谈谈field是姓氏吗,以及求F开头的英文姓氏 有适合女生的姓氏吗(我知道姓氏不分男女)对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔

2025年11月10日 11:15

美国参议院通过史上最大气候法案(拜登的“重大胜利”美国史上最大的气候投资法案通过意味着什么)

美国参议院通过史上最大气候法案(拜登的“重大胜利”美国史上最大的气候投资法案通过意味着什么)

大家好,今天小编来为大家解答以下的问题,关于美国参议院通过史上最大气候法案,拜登的“重大胜利”美国史上最大的气候投资法案通过意味着什么这个很多人还不知道,现在让我们一起来看看吧!本文目录拜登的“重大胜利”美国史上最大的气候投资法案通过意味着

2026年5月7日 21:15

c++无限弹窗代码(怎样用C++实现浏览器弹窗)

c++无限弹窗代码(怎样用C++实现浏览器弹窗)

“c++无限弹窗代码”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看c++无限弹窗代码(怎样用C++实现浏览器弹窗)!本文目录怎样用C++实现浏览器弹窗C++窗口代码电脑弹出对话框microsoft visual c++ r

2026年2月22日 12:45

visible怎么读音发音英语(注意用英文怎么写)

visible怎么读音发音英语(注意用英文怎么写)

“visible怎么读音发音英语”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看visible怎么读音发音英语(注意用英文怎么写)!本文目录注意用英文怎么写眼睛的英语单词怎么读明 用英文怎么读看见英文怎么写注意的英语单词怎么

2026年2月7日 05:30

c语言messagebox用法(VC++中messagebox的用法)

c语言messagebox用法(VC++中messagebox的用法)

大家好,c语言messagebox用法相信很多的网友都不是很明白,包括VC++中messagebox的用法也是一样,不过没有关系,接下来就来为大家分享关于c语言messagebox用法和VC++中messagebox的用法的一些知识点,大家

2026年5月7日 04:30

inspect是什么意思(inspect 和 test 的区别)

inspect是什么意思(inspect 和 test 的区别)

本篇文章给大家谈谈inspect是什么意思,以及inspect 和 test 的区别对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录inspect 和 test 的区别inspect,expect,suspect的名词形式是什

2026年6月3日 07:30

西安建站公司模板(企业官方网站用什么样的模板建站合适(下))

西安建站公司模板(企业官方网站用什么样的模板建站合适(下))

其实西安建站公司模板的问题并不复杂,但是又很多的朋友都不太了解企业官方网站用什么样的模板建站合适(下),因此呢,今天小编就来为大家分享西安建站公司模板的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录企业官方网站用

2026年2月28日 20:15

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索