开发者社区> 问答> 正文

如何使用反射调用类的私有方法?

如何使用反射调用类的私有方法?

展开
收起
迪哒迪滴喵 2024-07-22 16:50:34 8 0
1 条回答
写回答
取消 提交回答
  • 使用反射调用类的私有方法需要首先获取该类的Class对象,然后通过getMethod或getDeclaredMethod方法获取到私有方法的Method对象(注意,getMethod只能获取到public方法,而getDeclaredMethod可以获取到所有方法,包括私有方法)。之后,需要调用setAccessible(true)方法将私有方法的访问权限设置为可访问,最后通过invoke方法调用该私有方法。示例代码如下:

    try { 
    Class<?> managerType = manager.getClass(); 
    Method doSomethingMethod = managerType.getDeclaredMethod("doSomething", String.class); 
    doSomethingMethod.setAccessible(true); 
    doSomethingMethod.invoke(manager, "name参数"); 
    } catch (Exception e) { 
    e.printStackTrace(); 
    }
    
    2024-07-22 18:36:58
    赞同 2 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载