java的反射机制之getDeclaredMethods和getMethods的区别
getMethods()
返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法。注意: 返回数组中的元素没有排序,也没有任何特定的顺序。
package staticMethodReflect;
import java.lang.reflect.Method;
class ForMethod{
//声明静态方法
public static void sayHello(String name){
System. out.println( "你好" +name +"!!!" );
}
public String generateNum( Integer max, Integer min){
return (Math.random()*( max- min)+ min)+ "";
}
}
public class method {
public static void main(String[] args){
//创建ForMethod类对象
ForMethod fm = new ForMethod();
//获取ForMethod类对象对用的Class对象
Class<?> fmc = fm.getClass();
//获取可以访问的对象的对应的Method数组
Method[] md = fmc.getMethods();
for(int i=0;i<md.length;i++){
System.out.println(md[i].getName());
}
}
}


每次运行的结果顺序都不太一样。
getDeclaredMethods()
返回 Method 对象的一个数组,这些对象反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。返回数组中的元素没有排序,也没有任何特定的顺序。
package staticMethodReflect;
import java.lang.reflect.Method;
class ForMethod{
//声明静态方法
public static void sayHello(String name){
System. out.println( "你好" +name +"!!!" );
}
public String generateNum( Integer max, Integer min){
return (Math.random()*( max- min)+ min)+ "";
}
}
public class method {
public static void main(String[] args){
//创建ForMethod类对象
ForMethod fm = new ForMethod();
//获取ForMethod类对象对用的Class对象
Class<?> fmc = fm.getClass();
//获取可以访问的对象的对应的Method数组
Method[] md = fmc.getDeclaredMethods();
for(int i=0;i<md.length;i++){
System.out.println(md[i].getName());
}
}

调用getDeclaredMethods只打印了本类的方法,没有打印从父类继承的方法。
本文转自: https://blog.csdn.net/hanxueyu666/article/details/71502143
java的反射机制之getDeclaredMethods和getMethods的区别的更多相关文章
- Java 类反射机制分析
Java 类反射机制分析 一.反射的概念及在Java中的类反射 反射主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.在计算机科学领域,反射是一类应用,它们能够自描述和自控制.这类应用通过某 ...
- java笔记--反射机制之基础总结与详解
一.反射之实例化Class类的5种方式: java的数据类型可以分为两类,即引用类型和原始类型(即基本数据类型). 对于每种类型的对象,java虚拟机会实例化不可变的java.lang.Class对象 ...
- java利器------反射机制
java反射的概念:java的反射机制是指在运行状态下,对于一个类来说,可以得到这个类的所有方法和属性.对于一个对象来说,可以调用这个对象的人和方法和属性. 反射机制首先会拿到该类的字节码文件(Cla ...
- 014 Java的反射机制
作者:nnngu GitHub:https://github.com/nnngu 博客园:http://www.cnblogs.com/nnngu 简书:https://www.jianshu.com ...
- java的反射机制(第三篇)
本文转载自:http://c.biancheng.net/cpp/html/1782.html Person p=new Person();这是什么?当然是实例化一个对象了.可是这种实例化对象的方法存 ...
- JAVA基础-反射机制
什么是JAVA的反射机制 Java反射是Java被视为动态(或准动态)语言的一个关键性质.这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其 ...
- java笔录---反射机制(1)
引言 为了方便记忆java的反射机制,在这里仔细的总结了一下.主要是怕以后忘记了,这样也方便回忆.因为最近利用空余时间深入的了解spring和Mybatis框架, 像spring中核心模块IO ...
- 【转】java原理—反射机制
一.什么是反射:反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语言 ...
- java原理—反射机制
http://www.cnblogs.com/forlina/archive/2011/06/21/2085849.html 一.什么是反射:反射的概念是由Smith在1982年首次提出的,主要是指程 ...
随机推荐
- vue导出excel
1.按装依赖 cnpm install -S file-saver xlsx cnpm install -D script-loader 2.引入Blob.js和expor2Excal.js 3.在m ...
- js实现table表格相同内容按需合并
uniteTdCells(tableId) { var table = document.getElementById(tableId); for (let i = 0; i < table.r ...
- 使用flask框架实现web页面与数据库数据互联+常见的几种状态码
1.通过cygwin从pip install两个包:PyMySQL.SQLAlchemy: 2.在app.py中import我们要用到的库中的包:create_engine,text :from sq ...
- Windows 命令行解析工具(getopt)
忘记了上次在哪里找到这个功能库,只有一个 .h 和 .c 文件,再次搜索的时候发现找不到了,结果只能在之前的代码中,两个文件提出使用,顾将这两个文件备份在这里. /* Getopt for Micro ...
- excle中如何将一串数字前后加上单引号
1.新建excle表 2.构造如下一串字母加数字的字符串: 3.在B1栏中输入="“"&A1&"”",展示效果如下:
- hdu 1166 (单点更新+区间求和+裸题)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi ...
- 《Linux内核原理与分析》第五周作业
课本:第4章 系统调用的三层机制(上) -用户态.内核态和中断 -用户态:在低的执行级别下,代码能够掌控的范围有所限制,只能访问部分内存. -内核态:在高的执行级别下,代码可以执行特权指令,访问任意的 ...
- WIdo联网代码中文注释
代码如下 /*************************************************** 这是一个例子的dfrobot维多-无线集成物联网建兴传感器和控制节点 *产品页面及更 ...
- linux4.15.1编译init/mounts报错
AR init/mounts.o arm-linux-ar: illegal option -- T Usage: arm-linux-ar [emulation options] [-]{dmpqr ...
- Qt5 中文乱码问题
在做gui界面时,使用QTdesigner设计时,控件的名称等输入中文没有问题.为了更加灵活点,直接使用代码进行布局就很有必要了.这样就会出现中文的乱码.为了解决乱码,查看资料说时修改文件保存的编码, ...