java反射getmethod用法_Java反射之 getMethod() 与invoke的使用
1、forName 方法
forName是一个静态方法,其作用:通过调用来获取类名对应的Class对象,同时将Class对象加载进来。
如果将类名保存在字符串(如xml)中,就可以在程序运行时,动态调用加载。
注意:只有调用的参数是类名或者方法时,才可用。
2、newInstance()方法
作用:将对象实例化。返回类型为Object。与new的区别在于,new可以带参,而newInstance()不可以,一边初始化无参类。通常与forName()配合使用。
例:
String str = "java.util.Date";
Class cl1= Class.forName(str);//加载java.util.Date类
Object obj = cl1.newInstance();//实例化cl1
3、getMethod()方法
getMethod方法与getField方法类似,getField方法根据表示域名的字符串,返回一个Field对象。而getMethod方法则根据方法名称和相关参数,来定位需要查找的Method对象并返回。
getMethod与getDeclareMethods方法的区别在于,后者返回一个Method对象数组,需要自己在结果中查找所需Method对象。
原型: Method getMethod(String name,Class...parameterTypes)
参数解释:name: method的名称
parameterTypes:method的参数类型的列表(参数顺序需按声明method时的参数列表排列)
返回:符合method名称和参数的method对象
抛出错误:NoSuchMethodException
原因:没有找到所要查询的Method对象 或 Method名称为“”或“”
NullPointerException
原因:所要查询的Method对象的名称为null
SecurityException
原因:调用的类或其父类没有调用权限
例:
Method m1 = Employee.class.getMethod("getName");
Method m2 = Employee.class.getMethod("raiseSalary",double.class); 上面例子分别获得了Employee类的getName方法和raiseSalary方法的方法指针m1,m2。
4、invoke方法
作用:调用包装在当前Method对象中的方法。
原型:Object invoke(Object obj,Object...args)
参数解释:obj:实例化后的对象
args:用于方法调用的参数
返回:根据obj和args调用的方法的返回值
抛出错误:IllegalAccessException
原因:Method对象强制Java语言执行控制 或 无权访问obj对象
IllegalArgumentException
原因:方法是实例化方法,而指定需要调用的对象并不是实例化后的类或接口
例:
Class l = Class.forName("test1.A");
Object obj1 = l.newInstance();
Object[] obj2 = new Object[1];
obj2[0] = new String("hello world");
Method m = l.getMethod("a1",new Class[] { String.class });
Object obj3 = m.invoke(obj1, obj2);
java反射getmethod用法_Java反射之 getMethod() 与invoke的使用相关推荐
- java privilege的用法_java反射--注解的定义与运用以及权限拦截
自定义注解类编写的一些规则: 1. Annotation型定义为@interface, 所有的Annotation会自动继承java.lang.Annotation这一接口,并且不能再去继承别的类或是 ...
- java反射机制知识_Java反射机制讲解,程序员必须掌握的知识点
关注程序员7歌,一起用技术改变世界 大家好,我是程序员7歌,今天我为大家讲解Java的反射机制. 首先我们来看看反射的概念: Java反射说的就是在程序运行中,任何一个类,我们都可以知道这个类的方法和 ...
- java反射随意值_Java反射总结
能够分析类能力的程序称为反射.对于给定的Java类名,可以通过反射获取类的信息.将类的各成分映射出相应的Java类. Class类 在程序运行期间,Java运行时系统始终对所有的对象维护一个被称为运行 ...
- java反射源码_java反射技术详解附源码
在学校学习Java时,由于学的不扎实,也没经历过太多实战项目,所以很多重要的知识点瞟一眼就过去了,比如现在要讲的反射,当时直接就忽略掉了,可现在发现很多地方需要反射,不得不重新学习一下,上学欠了太多债 ...
- java反射最佳实践_Java 反射最佳实践 – 码农网
标签: 概要:最简单优雅的使用反射. 本文的例子都可以在示例代码中看到并下载,如果喜欢请star,如果觉得有纰漏请提交issue,如果你有更好的点子可以提交pull request.本文的示例代码主要 ...
- java反射的原理_java反射机制的实现原理
java反射机制的实现原理 反射机制: 所谓的反射机制就是java语言在运行时拥有一项自观的能力. 通过这种能力可以彻底的了解自身的情况为下一步的动作做准备. 下面具体介绍一下java的反射机制.这里 ...
- java反射 数组类型_Java反射-数组
通过反射使用数组有时会比较棘手.特别是需要获得一个特定类型数组的Class对象,如int[]等.本文将讨论如何通过反射创建数组和获得他们的Class对象. 注意:本文在阅读Eyal Lupu的博客&q ...
- java反射创建实例_Java反射创建实例
Java反射创建实例 package com.wkcto.chapter08.demo02; import java.lang.reflect.Constructor; import java.lan ...
- java 反射 工厂模式_Java反射机制demo(七)—反射机制与工厂模式
Java反射机制demo(七)-反射机制与工厂模式 工厂模式 简介 工厂模式是最常用的实例化对象模式. 工厂模式的主要作用就是使用工厂方法代替new操作. 为什么要使用工厂模式?直接new不好吗? 直 ...
最新文章
- eclipse run on server
- 二十六、事务的隔离级别
- php 华为语音通话,语音通知API_语音通话 VoiceCall_API参考_语音通知API_华为云
- Quartz-任务调度信息持久化到DB中
- linux下查找java的安装路径和java和tomcat的环境配置
- 直播 | AAAI 2021:文本对抗攻防中的对抗训练方法
- Web前端开发JavaScript基础(3)
- FFmpeg 4.2“艾达”发布
- 构造方法与对象的创建 java 1614780813
- C# 获取文件路径大全
- Whistle抓包详细使用教程
- 数据仓库之元数据管理
- mars老师android开发视频教程5季+java4android视频教程
- 如何在ubuntu-1804中增加swapfile
- WebLogic安装说明
- PSCAD中的频变参数线路模型(Frequency-Dependent (Phase) Line Model)
- 码云推送代码后不显示贡献度
- 网易云信IMweb版集成实现(PHP直接上码)
- FreeBSD常用命令110条
- 整个canvas玩一玩,做一个简单的水印相机小程序
热门文章
- 云E办:JWT strings must contain exactly 2 period characters. Found: 0
- Django | 模板语法之标签的使用(if,for..)
- 世界花滑冠军于小雨为国潮品牌爱斯沃代言
- IOS编程开发中的问题小结(一)
- non-virtual函数、virtual函数和pure virtual函数的区别
- 【JAVA面试】反射机制
- Spring Cloud Fegin 详解(一)
- VB6-对数值的舍入-四舍五入/四舍六入五留双-及推广
- word文件名后自动加1_那些Word的使用小技巧
- ElasticSearch学习笔记(8)· ES集群的搭建