涉及到两个知识点:1、@Hide隐藏函数;2、反射。
ActionScript3中可以自定义命名空间,从而实现一些方法只有自己开发的库可以调用。java中不能自定义命名空间,但是可以声明@hide,打包之后外部就调用不到了。具体原理可以看这个:http://www.cnblogs.com/wanqieddy/archive/2013/05/24/3096312.html。
总结一下,其实就是这个意思:如果是源代码的话,加不加@hide没有任何影响,但是如果是jar的话,如果源码中加了@hide,方法就访问不到了。
利用@hide在开发库的时候我们就可以控制一些方法只有库内可以访问,外部无法访问了。
之前在开发安卓Canvas渲染引擎——hEngine的时候,不知道@hide,一些只想由引擎调用的方法,实现起来很纠结,有时候只能写注释,提示用户不要调用。现在这个问题就可以完美解决了。
利用反射调用隐藏函数。
有时候我们想要调用隐藏的函数,或者private函数,这时候就要用到反射了。实现方法随便百度就能得到。就不多写了。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。