Java-无法访问类型为Foo的封闭实例

coolpapa:

我有以下代码:

class Hello {
    class Thing {
        public int size;

        Thing() {
            size = 0;
        }
    }

    public static void main(String[] args) {
        Thing thing1 = new Thing();
        System.out.println("Hello, World!");
    }
}

我知道什么Thing也没做,但是没有它,我的Hello,World程序可以正常编译。只有我定义的类对我不利。

而且它拒绝编译。我到达No enclosing instance of type Hello is accessible."了创建新事物的路线。我猜是:

  1. 我遇到系统级问题(在DrJava或Java安装中)或
  2. 我对如何在Java中构建工作程序有一些基本的误解。

有任何想法吗?

雅各布:

static class Thing 将使您的程序正常运行。

实际上,您已经拥有Thing一个内部类,该类(根据定义)与的特定实例相关联Hello(即使它从未使用或引用它),这意味着在new Thing();没有特定Hello实例的情况下说这是一个错误。范围。

如果改为将其声明为静态类,则它是“嵌套”类,不需要特定的Hello实例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章