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年首次提出的,主要是指程 ...
随机推荐
- SQL配置的坑
我要被自己蠢哭了,新做了一台电脑装SQL sever为了存数据,配置完,突然间发现MSSQLSEVER 不能重新启动,相当于之前的配置,还IP都白弄了.我找原因找了3个小时,后来发现是手欠启动的不该启 ...
- lua调用方法错误
self.sendMsg(json.encode(info),) self:sendMsg(json.encode(info),) 两个符号就差了一个点,引发的问题确实app崩溃,在这个方法中传的参数 ...
- python基础11_函数作用域_global_递归
看到了一个16进制转换的小知识点,就验证了一下运行结果. #!/usr/bin/env python # coding:utf-8 # 看到了16进制转换的问题.顺便验证一下. a = 255 b = ...
- git diff 与git format-patch 生成补丁包
git diff commit_id 会生成最后一次提交到目前修改过的内容补丁 git diff commit_id1 commit_id2 会生成两次提交之间修改过的内容补丁 git format- ...
- C语言求行列式的值
#include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <window ...
- groovy学习知识
(1)Groovy是一种基于JVM的敏捷开发语言,它结合了Python.Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码.它是一种 ...
- oracle-组件vault
===================== lsnrctl stopshutdown immediate;emctl stop dbconsolecd $ORACLE_HOME/rdbms/libma ...
- LOJ 3059 「HNOI2019」序列——贪心与前后缀的思路+线段树上二分
题目:https://loj.ac/problem/3059 一段 A 选一个 B 的话, B 是这段 A 的平均值.因为 \( \sum (A_i-B)^2 = \sum A_i^2 - 2*B \ ...
- Logistic Loss的简单讨论
首先应该知道Logistic Loss和Crossing Entropy Loss本质上是一回事. 所以所谓的SoftMaxLoss就是一般二分类LogisitcLoss的推广.之所以在网络中采取这种 ...
- Java继承(上)
继承的定义 在人类生活中的学徒关系,父子关系等等都属于继承: 但是在程序中是一种类与类的关系 在程序中可以使用父类的方法,也可以添加自己的方法,但是不能选择的继承,要继承就需要把所有的特点全部继承下来 ...