根据一份关于基本 Android 编程的手册,“public 修饰符意味着任何 Java 类,甚至是包外的类,都可以使用该方法或变量。”
我一般理解这个概念,但我想知道它是如何在 Android 平台上发挥作用的。从理论上讲,如果其他开发人员可以猜出如何正确调用它,那么其他开发人员创建的应用程序是否可以访问我的代码中的公共方法?
根据一份关于基本 Android 编程的手册,“public 修饰符意味着任何 Java 类,甚至是包外的类,都可以使用该方法或变量。”
我一般理解这个概念,但我想知道它是如何在 Android 平台上发挥作用的。从理论上讲,如果其他开发人员可以猜出如何正确调用它,那么其他开发人员创建的应用程序是否可以访问我的代码中的公共方法?
不,因为你的代码永远不会编译。
当您从另一个包的类中调用方法时,您必须导入该类才能这样做。整个类及其所有依赖项必须是项目的一部分,您才能成功编译代码。
由于您无权访问其他开发人员的源代码,因此您无法导入他的类。如果您可以导入他的类,那么您的应用程序将是他的代码作为库项目或其他东西,因此代码将随您的应用程序一起提供,使您的问题无关紧要。
public
修饰符适用于正常的编译单元。在这方面,没有其他应用程序可以调用您的课程。但是,理论上应该可以通过编写自己的类加载器并使用反射来实现。但是在这个级别上,public 修饰符是没有意义的,因为Reflection
你可以访问所有属性,而不管它们的修饰符是什么。对于这种方法,只有 aSecurityManager
会有所帮助。