有些时候我们继承某类时,父类中的私有方法对子类不可以,但又不想去改变父类。这时可以利用java.reflect.Method的setAccessible方法来改变该私有方法的访问标志。
父类中getTime()方法是私有的。
package reflect; import java.text.SimpleDateFormat; import java.util.Date; public class OriginalMethod { private String getTime(){ Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd-HH.mm.ss"); String time = sdf.format(date); return time; } public String getBjTime(){ return "BJ time is : " + getTime(); } }
子类中想引用这个方法:
package reflect; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class Child extends OriginalMethod { static Method getTime = null; static { try { getTime = OriginalMethod.class.getDeclaredMethod("getTime"); getTime.setAccessible(true); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } } String getTJTime(){ String Tianji = ""; try { Tianji = (String) getTime.invoke(this); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } return "tian ji time is : " + Tianji; } public static void main(String[] args) { String ss = new Child().getTJTime(); System.out.println(ss); } }
相关推荐
它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,...
解决方法:配置本地安全策略:\安全设置\本地策略\用户权限分配\中的“拒绝从网络访问这 台计算机”,把guest删除、保存即可。 计算机无法访问,您可能没有权限使用网络资源.请与这台服务器的管理员联系...
能从系统中抽出SAM文件,或是读取其它某些用标准方法无法成功访问的文件显然是件不错的事情。比如说当用标志dwShareMode = 0打开文件时,其它进程就不能对它进行访问了。一个很好的例子就是网络寻呼机程序Miranda。...
一个类型安全的库,用于在类型或值的固定大小集合上进行设置,包括用于访问,修改,访问和迭代这些类型或值的方法。 基本原理 枚举很棒,只要您使用它们来表示各个标志或选项即可。 如果要使用枚举表示一组选项,...
gl-flags 以最小的开销轻松更改和访问由gl.enable / gl.disable设置的 WebGL 标志。 这个包透明地为这些函数添加了一个缓存层,提供了一个更方便的 API,与其他不知道gl-flags库顺利互操作,并且只需要在创建时为每...
2.3.6. 撤销更改 2.3.7. 锁定和解锁 2.3.8. 重命名文件 2.3.9. 获取历史文件 2.3.10. 检查冲突 2.3.11. 解决冲突 2.3.12. 忽略无需版本控制的文件 2.3.13. 去除 SVN 标志 2.3.14. 查看文件每行的修改信息 2.3.15. ...
10.3 调用属性访问器方法时的性能 10.4 属性访问器的可访问性 10.5 泛型属性访问器方法 第11章 事件 11.1 设计要公开事件的类型 11.1.1 第一步:定义类型来容纳所有需要发送给事件通知接收者的附加信息 ...
如果怕弄不好注册表就先给注册表备份1下,介绍几个个手动备份的方法:} 1.win98下在DOS下scanreg/backup(备份)scanreg/regore(恢复) scanreg/fix(修复) 2.打开regedi.exe文件,然后手动导出整个注册表文件为*.reg,想...
1. 络空闲时,环路中只有令牌帧在循环传递 2. 令牌传递到有数据要发送的站点处时,该站点就修改令牌中的个标志位,并在令牌中附加需 3. 数据帧沿着环路传输,接
程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的 时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源...
2.3.6. 撤销更改 2.3.7. 锁定和解锁 2.3.8. 重命名文件 2.3.9. 获取历史文件 2.3.10. 检查冲突 2.3.11. 解决冲突 2.3.12. 忽略无需版本控制的文件 2.3.13. 去除SVN标志 2.3.14. 查看文件每行的修改信息 ...
访问和修改字段和对象。 调用注册功能。 监视字段。 自定义外观。 实时分析应用程序。 注册响应用户输入的新命令。 最新更改-5.0.0 增加了豪华支持 有关更多更改或其他版本,请参见 。 当前支持的目标: ...
查询线路:先查询两个站点之间是否存在路径,将所有站点标志为未访问,起始站点存入栈中,起始站点标志为已访问。采用使用深度搜索的方式,取出栈顶站点搜索下一个站点,如果站点已访问,则将此忽略。直到找到终止...
答:不能,一个对象的一个synchronized方法只能由一个线程访问。 65、请说出你所知道的线程同步的方法。 答:wait():使一个线程处于等待状态,并且释放所持有的对象的lock。 sleep():使一个正在运行的线程处于睡眠...
众所周知谷歌服务器是需要404工具才能正常访问,所以如果你没有404工具的情况下,WiFi 就会出现网络受限、WiFi图标出现一个感叹号标志,系统会以为你网络不好,导致网络不稳定。 幸好谷歌对「Captive Portal」功能...
一的认证标志,返还给用户。另外,认证系统还应该对Token进行效验,判断其有效性。 所有应用系统能够识别和提取Token信息要实现SSO的功能, 让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统...
网页信息:是一个表格可以进行添加、修改和删除。页面执行方式有两种:一是completed意思是等网页加载完毕后执行点击,二是thread多线程执行意思是加载页面3秒钟后再执行页面点击。各有各自的优点,如果发现其中一种...
-权限:有关此扩展为何需要权限的全面说明,请检查:https://add0n.com/country-flags.html#permissions-更改日志0.1.3更新ip4和ip6数据库优化代码以最少访问可能的请求数量0.1.4更新ip4和ip6数据库在搜索数据库之前...
处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出 真正的问题所在。 suspend() 方法容易发生死锁。调用 suspend() 的时候,目标线程会停下来,但却仍 然持有在这之前获得的锁定。此时...
文件 用户组关系的标志是GID。文件的GID只能由文件主或超级用户(root)来修改。Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。访问权限规定三种不同类型的...