我正在准备一个Android Java Jar,它有一些公共方法。我的要求是我想在jar中隐藏某些公共方法,即开发人员不能直接(他可以通过反射直接使用它)使用我提供给他/她的jar使用这些方法。 p>
在AOSP中,我看到这是使用@hide评论完成的,但同样对我不起作用。
请告诉我这个。
答案 0 :(得分:2)
使方法不是public
。或者,不要运送JAR。在Java JAR中,没有任何概念让事情public
仍然无法使用。
在AOSP中,我看到这是使用@hide评论完成的,但同样对我不起作用。
AOSP创建了两个JAR。一个在编译时使用,它不包含@hide
- 带注释的项。该JAR未包含在APK文件中。在运行时,使用单独的JAR,一个包含@hide
- 注释项的JAR。这是可能的,因为Android控制运行时类路径。
答案 1 :(得分:2)
对于您不希望外部访问的方法,您需要使用私有(或受保护)修饰符。
我认为在你的情况下你想要将一些方法定义为public,因为这很容易在代码中访问它们,也许是因为你需要在不同的包中。
我不知道您的API是如何实现的,但为了实现您的目标,您需要在设计/架构中进行更改。你几乎没有可能: