【发布时间】:2011-04-22 14:54:34
【问题描述】:
我正在尝试重写 Android View 类以稍微调整功能。但是我需要修改一个没有setter方法的字段。我已将子类放在名为android.widget 的包中。为什么我不能访问任何包私有成员字段?我注意到编译器说它们“无法解决”,而不是无法访问。这是否与Android.jar的构建方式有关?
【问题讨论】:
标签: java android access-modifiers package-private
我正在尝试重写 Android View 类以稍微调整功能。但是我需要修改一个没有setter方法的字段。我已将子类放在名为android.widget 的包中。为什么我不能访问任何包私有成员字段?我注意到编译器说它们“无法解决”,而不是无法访问。这是否与Android.jar的构建方式有关?
【问题讨论】:
标签: java android access-modifiers package-private
这些方法不是 Android SDK 的一部分,因此您无法直接从 SDK 应用程序中使用这些方法。如果您正在构建固件,则可以直接访问它们。据推测,您的子类可以通过反射获得它们,但请记住,此类字段(或任何其他非 SDK 内容)在任何给定的 Android 版本中都会发生变化。
【讨论】:
这也是类加载器的副作用。您的 android.widget 包与系统使用的 android.widget 包不同。
【讨论】: