【问题标题】:Why can't I access package-private fields in the android.widget package?为什么我无法访问 android.widget 包中的包私有字段?
【发布时间】:2011-04-22 14:54:34
【问题描述】:

我正在尝试重写 Android View 类以稍微调整功能。但是我需要修改一个没有setter方法的字段。我已将子类放在名为android.widget 的包中。为什么我不能访问任何包私有成员字段?我注意到编译器说它们“无法解决”,而不是无法访问。这是否与Android.jar的构建方式有关?

【问题讨论】:

    标签: java android access-modifiers package-private


    【解决方案1】:

    这些方法不是 Android SDK 的一部分,因此您无法直接从 SDK 应用程序中使用这些方法。如果您正在构建固件,则可以直接访问它们。据推测,您的子类可以通过反射获得它们,但请记住,此类字段(或任何其他非 SDK 内容)在任何给定的 Android 版本中都会发生变化。

    【讨论】:

      【解决方案2】:

      这也是类加载器的副作用。您的 android.widget 包与系统使用的 android.widget 包不同。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-16
        • 2012-10-03
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        • 2013-01-15
        • 2013-03-31
        相关资源
        最近更新 更多