Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android java:为什么我可以访问一些公共字段,并且可以';你不能接触其他人吗?_Java_Android - Fatal编程技术网

android java:为什么我可以访问一些公共字段,并且可以';你不能接触其他人吗?

android java:为什么我可以访问一些公共字段,并且可以';你不能接触其他人吗?,java,android,Java,Android,我不明白,我看了一下WindowManager.java的代码,可以看到: public interface WindowManager extends ViewManager { public static class LayoutParams extends ViewGroup.LayoutParams implements Parcelable { /** * Control flags that are private

我不明白,我看了一下WindowManager.java的代码,可以看到:

public interface WindowManager extends ViewManager {

    public static class LayoutParams extends ViewGroup.LayoutParams
            implements Parcelable {

        /**
         * Control flags that are private to the platform.
         * @hide
         */
        public int privateFlags;

        /**
         *
         * @see Gravity
         */
        public int gravity; 

     }
}

为什么我可以访问重力场但不能访问privateFlags场?这两个字段的声明似乎相似,为什么我不能?

您将字段称为“privateFlag”并不意味着您不能访问。 您可以访问该字段,因为它是公共的

在java中,访问级别修饰符决定其他类是否可以使用 特定字段或调用特定方法。有两个层次 访问控制:

  • 在顶级public或package private(无显式修改器)
  • 在成员级别上为public、private、protected或package private(无显式修改器)
更多阅读


有关@hide属性的内容(在Android中)

它只是javadoc(droiddoc也是)的一部分,所以@hide只是简单的 表示API文档中不包含方法/类/字段


更多阅读和阅读。

我想在这里冒险一试,说你实际上可以访问
privateflags
。什么阻止了你?@GiantTree从我刚才读到的,
@hide
只会阻止生成文档,它不会影响你通过编程访问字段的能力。@GiantTree哦,也许不会。链接中的OP在访问时似乎出现错误,但答案大多只是说明它会影响文档生成。@Carcigenicate您只能通过反射访问该字段。另外:应该没有必要访问隐藏字段,就像答案所建议的那样。@GiantTree我知道不应该有任何必要访问它,它实际上是任何使用API的人的私有信息。我只是对链接中的OP出现错误感到困惑,但答案表明它只会影响文档生成。不仅仅是从文档中排除,因为我编译时收到:错误:找不到符号:(