Java反射getMethod和getDeclaredMethod区别及说明

 更新时间:2026年06月29日 08:51:43   作者:思维的深度  
Java反射中,`getMethod()`与`getDeclaredMethod()`用于获取方法的区别在于`getMethod()`只能获取public方法,而`getDeclaredMethod()`可以获取类声明的所有方法,包括public、protected、private

Java反射getMethod和getDeclaredMethod区别

在Java反射中,Class类提供了getMethod()和getDeclaredMethod()两个方法用于获取方法,

两者的区别是:

1. getMethod()

只能获取public的方法,包括从父类继承的public方法。

2. getDeclaredMethod()

可以获取类本身声明的所有方法,包括public、protected、default访问修饰的方法,但是不包括继承的方法。

public class Main {
  public void publicMethod() {}
  
  private void privateMethod() {}

  public static void main(String[] args) throws Exception {
    Class<?> clazz = Main.class;

    // 获取public方法 
    clazz.getMethod("publicMethod"); // 成功

    // 获取private方法
    clazz.getMethod("privateMethod"); // 抛出NoSuchMethodException
    
    // 获取所有声明的方法 
    clazz.getDeclaredMethod("publicMethod"); // 成功 
    clazz.getDeclaredMethod("privateMethod"); // 成功
  }
}

可以通过Method的setAccessible(true)设置可访问属性

总结

  • getMethod():只能获取public方法
  • getDeclaredMethod():可以获取类声明的所有方法

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • springcloud-gateway集成knife4j的示例详解

    springcloud-gateway集成knife4j的示例详解

    这篇文章主要介绍了springcloud-gateway集成knife4j的示例详解,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • SpringBoot配置绑定方法详解

    SpringBoot配置绑定方法详解

    配置绑定是SpringBoot其中一个底层功能,SpringBoot把配置绑定的过程变得更加简单,传统java将常用的配置放到配置文件properties中,之后将这些配置绑定到javabean中
    2022-10-10
  • SpringBoot自定义注解的5个实战案例分享

    SpringBoot自定义注解的5个实战案例分享

    自定义注解是一种强大的元编程工具,允许在不修改原有代码逻辑的情况下,为程序添加额外的功能,本文将分析5个常见的案例,希望对大家有所帮助
    2025-09-09
  • Java实现经典拳皇误闯冒险岛游戏的示例代码

    Java实现经典拳皇误闯冒险岛游戏的示例代码

    《拳皇误闯冒险岛》是拳皇和冒险岛素材的基于JavaSwing的动作类游戏。本文将用Java语言实现这一游戏,需要的小伙伴可以参考一下
    2022-02-02
  • 解析Java中的默认方法

    解析Java中的默认方法

    这篇文章主要介绍了Java中的默认方法,包括继承和调用等Java入门学习中的基础知识,需要的朋友可以参考下
    2015-07-07
  • 深入理解DevOps+微服务框架

    深入理解DevOps+微服务框架

    这篇文章主要介绍了深入理解DevOps+微服务,主要包括DevOps 的三大支柱之中,即人(People)、流程(Process)和平台(Platform)的知识讲解,需要的朋友可以参考下
    2022-05-05
  • spring-boot2.7.8添加swagger的案例详解

    spring-boot2.7.8添加swagger的案例详解

    这篇文章主要介绍了spring-boot2.7.8添加swagger的案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • Spring中使用JSR303请求约束判空的实现

    Spring中使用JSR303请求约束判空的实现

    这篇文章主要介绍了Spring中使用JSR303请求约束判空的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Java命令行下Jar包打包小结

    Java命令行下Jar包打包小结

    这篇文章主要介绍了Java命令行下Jar包打包小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • java异常继承何类,运行时异常与一般异常的区别(详解)

    java异常继承何类,运行时异常与一般异常的区别(详解)

    下面小编就为大家带来一篇java异常继承何类,运行时异常与一般异常的区别(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11

最新评论