【问题标题】:What is the default field Modifier in Java class?Java 类中的默认字段修饰符是什么?
【发布时间】:2014-05-09 16:18:41
【问题描述】:

在以下代码中,field1 没有修饰符:public/protected/private

public class class1 {
    String field1;
}

那么field1的修饰符是什么?

在 Java 中的修饰符定义中,这些是与字段相关的所有修饰符:

    Modifier.PUBLIC         | Modifier.PROTECTED    | Modifier.PRIVATE |
    Modifier.STATIC         | Modifier.FINAL        | Modifier.TRANSIENT |
    Modifier.VOLATILE;

field1 有哪些修饰符?我觉得它没有Modifier.PUBLIC、Modifier.PROTECTED和Modifier.PRIVATE中的任何一个

我问这个是因为我想通过 Java 反射访问这个字段。


谢谢。为了答案。

它确实没有修饰符。

我已经为 field1 测试了 getModifiers()。它返回 0。

谢谢。

【问题讨论】:

  • 它没有任何修饰符。
  • 为什么它需要有一个修饰符?从源代码来看,它确实 not 有修饰符...
  • 修饰符是位掩码,0 或无是有效选项。顺便说一句,其他上下文中的默认修饰符是不同的。

标签: java reflection field access-modifiers


【解决方案1】:

它没有修饰符。有关缺少修饰符的更多详细信息,请参见此处:

http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

【讨论】:

    【解决方案2】:

    它的修饰符被称为default。每个变量/函数的修饰符都没有明确说明任何其他修饰符。

    【讨论】:

      【解决方案3】:

      没有修饰符。您可以从类、包中访问字段,但不能从子类或其他包中访问。

      【讨论】:

        【解决方案4】:

        它有修饰符--default,它总是隐含的。与该字段或方法共享同一个包的类可以访问默认修改的字段或方法。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-07-03
          • 2013-04-16
          • 2011-02-01
          • 2014-03-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多