Java中private修饰符修饰的方法或属性,只有在该类内可以访问,其他类均无法访问。事实真的是这样吗?下面一个例子可以实现访问一个类中的private方法,原理是通过Java的反射机制,感觉Java反射机制在这点似乎不太安全。

一个只有一个私有方法的类:

package com.pcs;public class PrivateMethod{private String sayHello(String name, Integer age, String sex){return "Hello, " + name+" "+age+" "+sex;}
}

另外一个类,来调用PrivateMethod类中的私有的sayHello

package com.pcs;import java.lang.reflect.Method;public class CallPrivateMethod{public static void main(String[] args){try {Class<?> c = Class.forName("com.pcs.PrivateMethod");Method m = c.getDeclaredMethod("sayHello", String.class, Integer.class, String.class);m.setAccessible(true);System.out.println(m.invoke(c.newInstance(), "Super  pan", 21, "男"));} catch (Exception e) {e.printStackTrace();}}
}

编译并执行,你会看到奇迹的。

转自:http://blog.csdn.net/sunshinestation/article/details/3713717

Java private方法访问相关推荐

  1. java 重写方法 访问权限_为何Java中子类重写方法的访问权限不能低于父类中权限(内含里氏替换原则)...

    为何Java中子类重写方法的访问权限不能低于父类中权限 因为 向上转型及Java程序设计维护的原因 例: 假设一个父类A 拥有的方法public void setXXX(){}可以被其他任意对象调用这 ...

  2. public,private,protected访问权限在Java,C++中的解析

    Java中: Java中的访问权限有public,private,protected和默认的包访问权限,如果类中的属性方法没有显示的指明访问权限,则具有包访问权限,我喜欢称它为packeged权限,很 ...

  3. java private 接口_java接口中 定义 private 私有方法

    在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...

  4. Java私有方法解释_java接口中 定义 private 私有方法

    在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...

  5. 子类能否访问或覆盖父类的private方法

    http://bettereveryday.iteye.com/blog/591771 private关键字的定义是"除了包含该成员的类之外,其他任何类都无法访问这个成员.",也就 ...

  6. static关键字是什么意思?java中是否可以覆盖一个private方法或者static方法

    一.static关键字是什么意思? static关键字表示静态的意思,用于修饰成员变量和成员函数.表示可以在没有类的实例的情况下,用类名.变量名或者类名.函数名,进行访问 二.java中是否可以覆盖( ...

  7. java private修饰方法,private修饰的方法

    A 解析 在子类覆盖父类的方法时,如果父类的方法的修饰符是Public,子类一定要用public.如果父类的方法的修饰符是private,子类就不能直接访问或重载这个方法.最新...... 方法的定义 ...

  8. C++和Java的属性访问和方法调用 效率比较

    属性访问----C++快于Java JVM访问对象属性时(字节码OP_IGET_/OP_SGET_),会先通过属性名字字符串去查ClassObject元数据中属性的偏移(通过属性名字符串找到Class ...

  9. java 接口的访问权限_证明接口interface中定义的方法的访问权限为public

    如题,证明Java中接口文件中定义的方法访问权限为public. 众所周知,接口中的方法默认是public abstract 类型的,它必须由子类实现之.那怎么证明呢,反射. 定义接口文件 packa ...

  10. 如何单元测试Java的private方法

    问题 Java类中private方法通常只能被其所属类的调用,其他类只能望而却步,单元测试private方法也就一筹莫展. 尝试解法: 在测试时,手动将private改为public,测试完后再将其改 ...

最新文章

  1. POJ3264[线段树]
  2. mailx(mail)配置outlook SMTP方式发送邮件
  3. maven修改运行环境配置
  4. 比特币黄金首遭“51%攻击”,可能动摇数字货币世界的根基
  5. 如何查看cplex的help文档_用摹客,写出更好的产品文档
  6. InnoDB 的辅助索引叶子节点为什么不直接保存的记录地址而要存主键键值
  7. java取json对象的值_java的JsonObject对象提取值方法
  8. 为啥你写的代码老有大串的if/else?
  9. linux-2.6内核模块引用计数的实现(try_module_get和module_put)
  10. centos php 5.2,CentOS服务器单独升级 php5.1 到 5.2版本
  11. .Net程序猿玩转Android开发---(11)页面跳转
  12. python爬取拉钩python数据分析职位招聘信息
  13. 家装企业如何开展网络营销?
  14. Android Studio Electric Eel | 2022.1.1 发布,快来看看有什么大更新吧
  15. 公路多孔箱涵设计_箱涵结构设计.pdf
  16. C++入门编程之成语接龙
  17. python基础绘图,教你玩转图表制作
  18. Redux-Devtools调试工具安装使用
  19. 学习CSS——小米商城官网(第9、10天)
  20. TIDB简介及基础架构

热门文章

  1. 拉钩网前端项目实战05
  2. qq登录界面句柄_天天玩QQ!知道登录界面那两个人是谁吗?网友:不是情侣?...
  3. 懒人精灵 一 获取淘宝北京时间接口
  4. 申请 iOS开发者计划 (IOS Developer Program IDP)
  5. 新购电脑已装显卡,但控制面板里找不到“NVIDIA 控制面板”怎么办?
  6. (三)描述统计学:数值方法
  7. 基于 ClickHouse OLAP 的生态:构建基于 ClickHouse 计算存储为核心的“批流一体”数仓体系...
  8. 西安计算机专业大专排名及分数线,西安所有的大学名单及排名分数线(本科 专科)...
  9. SPP、RFB和ASPP
  10. 阿里巴巴容器技术 Pouch 解析