0

我的代码如下所示:

public class Hello{

    private class Word{ 
        ... 
    }

    public static void main(String[] args) {

        Word W = new Hello.Word();
    }
}

如何从 main 中调用 Word 类?

Word W = new Hello.Word(); 

似乎不是正确的解决方案。

4

3 回答 3

4

你可以做

Hello.Word word = new Hello().new Word();

由于Word是一个内部类,你需要一个外部类的实例来实例化它。

于 2013-09-21T20:26:30.000 回答
2

您正在尝试从静态上下文中实例化另一个内部的非静态类。

要么使内部类静态:

 private static class Word{ 
    ... 
 }

(但是,您不需要该Hello部分,只需Word W = new Word();做得很好)

或者创建外部类的实例,然后使用它创建内部类的实例。(Sotirios也提出了这个解决方案,但有更好的细节。)

于 2013-09-21T20:26:11.300 回答
0

Word是的内部类Hello,即没有类实例的存在,就没有类实例存在Hello的机会Word。所以你必须先创建一个对象Hello,然后再创建一个Word对象。
尝试这个

    Hello.Word W =  new Hello(). new Word();  
于 2013-09-21T20:30:34.643 回答