-2

があります。MyClass mc=new MyClass();サブクラスへのアクセスが必要です: mc.Sub.Check()

https://stackoverflow.com/a/488749/1234275 - この場合は機能しません。

public class MyClass {
  public onCreate() {
    super();
  }
  Public class Sub {
    public void Check() {
      //
    }
  }
}
4

3 に答える 3

0

静的メソッドのみがクラス名で呼び出されます。メソッドを静的にするか、外部クラスに内部クラスのインスタンスを作成し、すべてのメソッドをそのインスタンスで作成します。

于 2012-05-14T08:35:42.720 に答える
0

通常のクラスと同じように Inner クラスの Object を作成するだけです。上記の場合、次の方法で実行できます。

Sub sub = new Sub();

sub.check();

上記のコードを onCreate(); 内に配置します。

これがあなたを助けることを願っています。

于 2012-05-14T08:31:35.123 に答える
0

他のクラスと同じように内部クラスを開始できます。つまりnew MyClass.Sub、メソッドを呼び出します。開始をスキップしたい場合は、ネストされたクラスを静的として宣言する必要があります。

(また: 非静的内部クラスのインスタンスは、それを含むクラスのインスタンスのコンテキストにのみ存在できます)。

于 2012-05-14T08:28:23.420 に答える