ネストされた非静的クラスをインターフェイスに実装するにはどうすればよいですか?

厳しい

このクラスを持つ

public abstract class Mother{
  public class Embryo{
    public void ecluse(){
      bear(this);
    }
  }
  abstract void bear(Embryo e);
}

母のインスタンスがある場合にのみ、胚のインスタンスを作成できます。

new Mother(){...}.new Embryo().ecluse();

質問:

  • マザーをインターフェースとして定義する方法は?
メナ

ネストされたクラスEmbryoは暗黙的staticinterfaceにあります。

そのため、インターフェースのbearインスタンスに関係する、事実上呼び出し可能なメソッドにアクセスできませんMother

したがって:

  • どちらかあなたは宣言Motherのようにinterface、あなたの、Embryoecluse方法は事実上、呼び出すことはできませんbear、それは静的スコープますので、
  • または、Motherとして保持abstract classますが、Motherのインスタンスを取得するために(匿名または子クラスのインスタンス)のインスタンスが必要ですEmbryo(ただしEmbryo、特に指定されていない限り、インスタンススコープであり、bear仮想的に呼び出すことができます

自己完結型の例

package test;

public class Main {

    public interface MotherI {
        // this is static!
        public class Embryo {
            public void ecluse() {
                // NOPE, static context, can't access instance context
                // bear(this);
            }
        }
        // implicitly public abstract
        void bear(Embryo e);
    }

    public abstract class MotherA {
        public class Embryo {
            public void ecluse() {
                // ok, within instance context
                bear(this);
            }
        }

        public abstract void bear(Embryo e);
    }

    // instance initializer of Main
    {
        // Idiom for initializing static nested class
        MotherI.Embryo e = new MotherI.Embryo();
        /*
         *  Idiom for initializing instance nested class
         *  Note I also need a new instance of `Main` here,
         *  since I'm in a static context.
         *  Also note anonymous Mother here.
         */
        MotherA.Embryo ee = new MotherA() {public void bear(Embryo e) {/*TODO*/}}
           .new Embryo();
    }

    public static void main(String[] args) throws Exception {
        // nothing to do here
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

クラスにインターフェイスを実装し、別のクラスから継承させるにはどうすればよいですか?

分類Dev

インターフェイスを実装するクラスのリストを取得するにはどうすればよいですか?

分類Dev

基本クラスで静的インターフェイスを定義し、インターフェイスを派生クラスに実装する必要があることを確認するにはどうすればよいですか?

分類Dev

フラグメントによって使用されるアクティビティによって実装されたインターフェイスをテストするにはどうすればよいですか?

分類Dev

戻り値の型が外部インターフェイスであるネストされたインターフェイスメソッドを実装するにはどうすればよいですか?

分類Dev

インターフェイスの実装クラスのタイプパラメータを設定するにはどうすればよいですか?

分類Dev

サブクラスのメソッド(パラメーター)に、実装されたインターフェースで定義された注釈があるかどうかを確認するにはどうすればよいですか?

分類Dev

インターフェイスを動的に実装するクラスからメソッドを取得するにはどうすればよいですか?

分類Dev

Typescript:ネストされたオブジェクトのインターフェースを定義するにはどうすればよいですか?

分類Dev

インターフェイスに別のインターフェイスを実装させるにはどうすればよいですか

分類Dev

メソッドパラメータとしてまだ実装されていないインターフェイスを使用するクラスでJUnitテストを実行するにはどうすればよいですか?

分類Dev

メソッドパラメータとしてまだ実装されていないインターフェイスを使用するクラスでJUnitテストを実行するにはどうすればよいですか?

分類Dev

複数のインターフェイスを備えたウィンドウで実行されているネットワークインターフェイスのMACアドレスを取得するにはどうすればよいですか?

分類Dev

非同期使用のために設計されたインターフェースを適切に実装するにはどうすればよいですか?

分類Dev

Pythonでインターフェイスを実装するにはどうすればよいですか?

分類Dev

ジェネリックインターフェースのすべての実装をautofacに登録するにはどうすればよいですか?

分類Dev

(ネストされた)StackNavigator内にカスタムヘッダーアイコンを実装するにはどうすればよいですか?

分類Dev

インターフェイスがJavaで実装しているクラス型を参照するにはどうすればよいですか?

分類Dev

変更できないクラスを作成してインターフェイスを実装するにはどうすればよいですか?

分類Dev

異なるクラスに対して1つのインターフェイス実装を作成するにはどうすればよいですか?

分類Dev

インターフェイスの匿名実装を作成するにはどうすればよいですか?

分類Dev

インターフェイスを実装するクラスにあるメソッドを、そのインターフェイスのタイプのオブジェクトで呼び出すにはどうすればよいですか?

分類Dev

非静的インターフェイスメソッドから静的メソッドを実現するにはどうすればよいですか?

分類Dev

クラスメンバーを使用してインターフェイスを実装するにはどうすればよいですか?

分類Dev

ネストされたクラスのフィールドを実際にプライベートにするにはどうすればよいですか?

分類Dev

ネストされたクラスのフィールドを実際にプライベートにするにはどうすればよいですか?

分類Dev

インターフェイスを実装する基本クラスから派生したインスタンスのリストを作成するにはどうすればよいですか?

分類Dev

List <インターフェイスを実装するオブジェクト>をメソッドに渡すにはどうすればよいですか?

分類Dev

子クラスにインターフェイスプロパティを実装するにはどうすればよいですか?

Related 関連記事

  1. 1

    クラスにインターフェイスを実装し、別のクラスから継承させるにはどうすればよいですか?

  2. 2

    インターフェイスを実装するクラスのリストを取得するにはどうすればよいですか?

  3. 3

    基本クラスで静的インターフェイスを定義し、インターフェイスを派生クラスに実装する必要があることを確認するにはどうすればよいですか?

  4. 4

    フラグメントによって使用されるアクティビティによって実装されたインターフェイスをテストするにはどうすればよいですか?

  5. 5

    戻り値の型が外部インターフェイスであるネストされたインターフェイスメソッドを実装するにはどうすればよいですか?

  6. 6

    インターフェイスの実装クラスのタイプパラメータを設定するにはどうすればよいですか?

  7. 7

    サブクラスのメソッド(パラメーター)に、実装されたインターフェースで定義された注釈があるかどうかを確認するにはどうすればよいですか?

  8. 8

    インターフェイスを動的に実装するクラスからメソッドを取得するにはどうすればよいですか?

  9. 9

    Typescript:ネストされたオブジェクトのインターフェースを定義するにはどうすればよいですか?

  10. 10

    インターフェイスに別のインターフェイスを実装させるにはどうすればよいですか

  11. 11

    メソッドパラメータとしてまだ実装されていないインターフェイスを使用するクラスでJUnitテストを実行するにはどうすればよいですか?

  12. 12

    メソッドパラメータとしてまだ実装されていないインターフェイスを使用するクラスでJUnitテストを実行するにはどうすればよいですか?

  13. 13

    複数のインターフェイスを備えたウィンドウで実行されているネットワークインターフェイスのMACアドレスを取得するにはどうすればよいですか?

  14. 14

    非同期使用のために設計されたインターフェースを適切に実装するにはどうすればよいですか?

  15. 15

    Pythonでインターフェイスを実装するにはどうすればよいですか?

  16. 16

    ジェネリックインターフェースのすべての実装をautofacに登録するにはどうすればよいですか?

  17. 17

    (ネストされた)StackNavigator内にカスタムヘッダーアイコンを実装するにはどうすればよいですか?

  18. 18

    インターフェイスがJavaで実装しているクラス型を参照するにはどうすればよいですか?

  19. 19

    変更できないクラスを作成してインターフェイスを実装するにはどうすればよいですか?

  20. 20

    異なるクラスに対して1つのインターフェイス実装を作成するにはどうすればよいですか?

  21. 21

    インターフェイスの匿名実装を作成するにはどうすればよいですか?

  22. 22

    インターフェイスを実装するクラスにあるメソッドを、そのインターフェイスのタイプのオブジェクトで呼び出すにはどうすればよいですか?

  23. 23

    非静的インターフェイスメソッドから静的メソッドを実現するにはどうすればよいですか?

  24. 24

    クラスメンバーを使用してインターフェイスを実装するにはどうすればよいですか?

  25. 25

    ネストされたクラスのフィールドを実際にプライベートにするにはどうすればよいですか?

  26. 26

    ネストされたクラスのフィールドを実際にプライベートにするにはどうすればよいですか?

  27. 27

    インターフェイスを実装する基本クラスから派生したインスタンスのリストを作成するにはどうすればよいですか?

  28. 28

    List <インターフェイスを実装するオブジェクト>をメソッドに渡すにはどうすればよいですか?

  29. 29

    子クラスにインターフェイスプロパティを実装するにはどうすればよいですか?

ホットタグ

アーカイブ