java.lang.Class.getDeclaredMethod()方法详解
Java.lang.Class.getDeclaredMethod()方法用法
注:方法返回一个Method对象,它反映此Class对象所表示的类或接口的指定已声明方法。
描述
java.lang.Class.getDeclaredMethod()方法返回一个Method对象,它反映此Class对象所表示的类或接口的指定已声明方法。
name 参数是一个字符串,指定所需的方法的简单名称,
parameterTypes 参数是一个数组的Class对象识别方法的形参类型,在声明的顺序
声明
- public Method getDeclaredMethod(String name, Class... parameterTypes) throws NoSuchMethodException,SecurityException
参数
name -- 方法的名称
parameterTypes -- 参数数组
返回值
匹配指定名称和参数的类的方法,此方法返回的Method对象
异常
NoSuchMethodException -- 如果匹配方法未找到
NullPointerException -- 如果name 为 null.
SecurityException -- If a security manager, s, is present.
实例
如何使用java.lang.Class.getDeclaredMethod()方法
- package com.app.ui;
- import java.lang.reflect.*;
- public class ClassDemo {
- public static void main(String[] args) {
- ClassDemo cls = new ClassDemo();
- Class c = cls.getClass();
- try {
- // parameter type is null
- Method m = c.getDeclaredMethod("show", null);
- System.out.println("method = " + m.toString());
- // method Integer
- Class[] cArg = new Class[1]
- cArg[0] = Integer.class;
- Method lMethod = c.getDeclaredMethod("showInteger", cArg);
- System.out.println("method = " + lMethod.toString());
- }catch(NoSuchMethodException e){
- System.out.println(e.toString());
- }
- }
- private Integer show() {
- return 1;
- }
- public void showInteger(Integer i) {
- this.i = i;
- }
- public int i = 78655;
- }
编译和运行程序,产生以下结果:
- method = private java.lang.Integer ClassDemo.show()
- method = public void ClassDemo.showInteger(java.lang.Integer)
注:
getDeclaredMethod() 获取的是类自身声明的所有方法,包含public、protected和private方法。
getMethod () 获取的是类的所有共有方法,这就包括自身的所有public方法,和从基类继承的、从接口实现的所有public方法。
java.lang.Class.getDeclaredMethod()方法详解的更多相关文章
- Java中的main()方法详解
在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是 ...
- 使用Java操作文本文件的方法详解
使用Java操作文本文件的方法详解 摘要: 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而 ...
- java的ArrayList使用方法详解
ArrayList是Java的链表类,在项目开发中十分常见,那么怎样对ArrayList进行添加.删除.修改.查询.遍历呢?本文将进行详细阐述. 工具/原料 java 一.ArrayList的添加 ...
- 运行java的class文件方法详解
一.运行class文件 执行带main方法的class文件,命令行为:java <CLASS文件名>注意:CLASS文件名不要带文件后缀.class 例如: 复制代码代码如下: java ...
- java.lang.Thread.State类详解
public static enum Thread.Stateextends Enum<Thread.State>线程状态.线程可以处于下列状态之一: 1.NEW 至今尚未启动的线程的状态 ...
- 转:Java中的Clone()方法详解
Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那 ...
- Java equals() 和hashCode()方法详解
Java的Object类中定义了equals方法,Object类中的equals方法源代码如下,从源代码中可以看出Object类中的equals方法是用来返回判断两个对象是否指向同一个对象(引用地址) ...
- Java连载39-构造方法详解
一. 1.多行注释:CTRL + shift + / 2.当一个类中没有定义任何构造方法的话,系统默认给该类提供一个无参数的构造方法,这个构造方法被称为缺省构造器. public class D39 ...
- Java定时器Timer使用方法详解
感谢大佬:https://www.jb51.net/article/129808.htm 一.概念 定时计划任务功能在Java中主要使用的就是Timer对象,它在内部使用多线程的方式进行处理,所以它和 ...
随机推荐
- Python快速学习-高级特性
1.切片 取一个list或tuple的部分元素是非常常见的操作 L = ['hello','the','world','and','my','love'] 取前三个元素 L[0:3],L[:3] 取倒 ...
- Springboot- Caused by: org.hibernate.AnnotationException: No identifier specified for entity:
错误与异常: Caused by: org.hibernate.AnnotationException: No identifier specified for entity: 原因:引用了不对的包, ...
- Membership如何得到当前登录的用户名称
System.Web.Security.Membership Membership.GetUser().UserName可以得到当前登录的用户信息.
- github-如何设置SSH Key
设置SSH Key 在注册好github账号后,打开你的电脑桌面上的一个文件夹,这就建立了一个本地工作库,在里面点击鼠标右键,找到你的git bash here-点击开,如图所示:进行下面操作: 输入 ...
- CC++中sizeof函数的用法
C/C++中sizeof()函数的用法 学习C/C++有时会遇到下面的情况: 已知 char *str1="absde"; char str2[]="absde" ...
- 红帽企业版Linux成为Linux下的.NET Core的参考平台
微软和红帽声明将在红帽企业版Linux运行的.NET纳入官方支持.经两家公司透露,“红帽企业级Linux将成为Linux下的.NET Core主要参考操作系统”. 来自红帽资深开发者Harry Mow ...
- LeetCode OJ:Invert Binary Tree(反转二叉树)
Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 Trivia:This problem was ...
- MAMP软件的安装和使用
MAMP Pro软件是一款很好的在MAC下面运行的网站集成环境软件,功能强大,配置简单,十分便于本地调试,其由Apache+MySQL+PHP+动态DNS配置构成,PHP的版本可以动态切换到最新版.无 ...
- lamp script
centos6 ,不区分32位,64位, 要求机器可以上外网. 支持lamp 和 lnmp, mysql支持5.1和5.6两个版本,php支持5.3和5.6两个版本,apache2.2,nginx1. ...
- uva1583(暴力枚举或打表)
紫书上的代码是打表. 我的做法是暴力枚举.注意,有多个变量时,选择枚举哪一个变量会影响到时间效率,值得考虑.由于各位数字之和最大就是五个9的和为45,所以就枚举各位数字之和比较快. #include& ...