java - Java中访问静态嵌套类的方法

标签 java inner-classes static-class

我了解到静态嵌套类应该像外部类的字段一样被访问(第2行)。但即使直接实例化内部类也有效(第 1 行)。你能帮我理解一下吗?

public class OuterClass
{
    public OuterClass() 
    {
        Report rp = new Report(); // line 1
        OuterClass.Report rp1 = new OuterClass.Report();  // line 2 
    }

    protected static class Report()
    {
        public Report(){}
    }
}

最佳答案

accessed like a field of outer class

这就是你正在做的事情。想象一下:

class OuterClass
{
    SomeType somefield;
    static SomeType staticField;     

    public OuterClass()
    {
        //works just fine.
        somefield = new SomeType();
        //also works. I recommend using this
        this.somefield = new SomeType();

        //the same goes for static members
        //the "OuterClass." in this case serves the same purpose as "this." only in a static context
        staticField = new SomeType();
        OuterClass.staticField = new SomeType()
    }
}

关于java - Java中访问静态嵌套类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40870460/

相关文章:

.net - 使用静态方法与数据库交互——有什么潜在问题吗?

widget - 如何清除或删除包含我的静态类的未命名小部件池

java - 带有 Android 应用程序的多频段应用程序

java - 要求在应用程序内使用 BlackBerry PIN

java - Java中的静态内部类问题

ruby-on-rails - 下划线 'underscoreize' 是正确的 Rails 变形吗?

java - 如何通过添加所有回收器 View 行来获得总计

Java:为什么 Array (w index) *数量级*比 Map (key) 访问快?

java - (嵌套?)按钮的匿名内部类

java - 设置 StaticClass 以将我当前的 Button 设置为 Visible with GUI Handler