Java private方法访问
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方法访问相关推荐
- java 重写方法 访问权限_为何Java中子类重写方法的访问权限不能低于父类中权限(内含里氏替换原则)...
为何Java中子类重写方法的访问权限不能低于父类中权限 因为 向上转型及Java程序设计维护的原因 例: 假设一个父类A 拥有的方法public void setXXX(){}可以被其他任意对象调用这 ...
- public,private,protected访问权限在Java,C++中的解析
Java中: Java中的访问权限有public,private,protected和默认的包访问权限,如果类中的属性方法没有显示的指明访问权限,则具有包访问权限,我喜欢称它为packeged权限,很 ...
- java private 接口_java接口中 定义 private 私有方法
在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...
- Java私有方法解释_java接口中 定义 private 私有方法
在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...
- 子类能否访问或覆盖父类的private方法
http://bettereveryday.iteye.com/blog/591771 private关键字的定义是"除了包含该成员的类之外,其他任何类都无法访问这个成员.",也就 ...
- static关键字是什么意思?java中是否可以覆盖一个private方法或者static方法
一.static关键字是什么意思? static关键字表示静态的意思,用于修饰成员变量和成员函数.表示可以在没有类的实例的情况下,用类名.变量名或者类名.函数名,进行访问 二.java中是否可以覆盖( ...
- java private修饰方法,private修饰的方法
A 解析 在子类覆盖父类的方法时,如果父类的方法的修饰符是Public,子类一定要用public.如果父类的方法的修饰符是private,子类就不能直接访问或重载这个方法.最新...... 方法的定义 ...
- C++和Java的属性访问和方法调用 效率比较
属性访问----C++快于Java JVM访问对象属性时(字节码OP_IGET_/OP_SGET_),会先通过属性名字字符串去查ClassObject元数据中属性的偏移(通过属性名字符串找到Class ...
- java 接口的访问权限_证明接口interface中定义的方法的访问权限为public
如题,证明Java中接口文件中定义的方法访问权限为public. 众所周知,接口中的方法默认是public abstract 类型的,它必须由子类实现之.那怎么证明呢,反射. 定义接口文件 packa ...
- 如何单元测试Java的private方法
问题 Java类中private方法通常只能被其所属类的调用,其他类只能望而却步,单元测试private方法也就一筹莫展. 尝试解法: 在测试时,手动将private改为public,测试完后再将其改 ...
最新文章
- POJ3264[线段树]
- mailx(mail)配置outlook SMTP方式发送邮件
- maven修改运行环境配置
- 比特币黄金首遭“51%攻击”,可能动摇数字货币世界的根基
- 如何查看cplex的help文档_用摹客,写出更好的产品文档
- InnoDB 的辅助索引叶子节点为什么不直接保存的记录地址而要存主键键值
- java取json对象的值_java的JsonObject对象提取值方法
- 为啥你写的代码老有大串的if/else?
- linux-2.6内核模块引用计数的实现(try_module_get和module_put)
- centos php 5.2,CentOS服务器单独升级 php5.1 到 5.2版本
- .Net程序猿玩转Android开发---(11)页面跳转
- python爬取拉钩python数据分析职位招聘信息
- 家装企业如何开展网络营销?
- Android Studio Electric Eel | 2022.1.1 发布,快来看看有什么大更新吧
- 公路多孔箱涵设计_箱涵结构设计.pdf
- C++入门编程之成语接龙
- python基础绘图,教你玩转图表制作
- Redux-Devtools调试工具安装使用
- 学习CSS——小米商城官网(第9、10天)
- TIDB简介及基础架构
热门文章
- 拉钩网前端项目实战05
- qq登录界面句柄_天天玩QQ!知道登录界面那两个人是谁吗?网友:不是情侣?...
- 懒人精灵 一 获取淘宝北京时间接口
- 申请 iOS开发者计划 (IOS Developer Program IDP)
- 新购电脑已装显卡,但控制面板里找不到“NVIDIA 控制面板”怎么办?
- (三)描述统计学:数值方法
- 基于 ClickHouse OLAP 的生态:构建基于 ClickHouse 计算存储为核心的“批流一体”数仓体系...
- 西安计算机专业大专排名及分数线,西安所有的大学名单及排名分数线(本科 专科)...
- SPP、RFB和ASPP
- 阿里巴巴容器技术 Pouch 解析