-4

私は フィールドインターフェースを持っています

このインターフェイスのオブジェクトを作成するには?

4

8 に答える 8

2

すべての既知の実装クラスの下を見てください: CustomField

これはおそらくあなたが探しているクラスです

Field<T> myField = new CustomField<T>(String name, DataType<T> type);

フィールドのリスト (配列) の場合:

ArrayList<Field<T>> arr = new ArrayList<Field<T>>();
arr.add(myField);

ジェネリックに慣れていない場合、T は使用する参照型 (クラス) を表すだけです。

単純な配列型 (ArrayList ではない) の場合、次のようになります。

Field<T>[] arr = new Field<T>()[size];
arr[0] = myField;

ArrayList またはその他の Collection の使用を検討してください。あなたの場合のように、変数を参照するプレーンな古い配列を使用する理由はありません。

于 2013-08-26T09:17:06.583 に答える
1

できません(コンストラクターがinstatiateありinterfaceません)...

「匿名内部クラス」については、Java 言語仕様 (またはお気に入りの Java 本) を読むことをお勧めします。

于 2013-08-26T09:15:41.340 に答える
0

できません。interfacecontains 、そのunimplemented methodsオブジェクトを作成しても意味がありません-クラスimplementをインターフェイスにしてから、そのクラスをインスタンス化する必要があります。

于 2013-08-26T09:14:07.383 に答える
0

できないと強く信じてい instantiate interfaceます。

その実装を使用するか、代わりに匿名の内部クラスを使用interface できます

ドキュメントの例

 btn.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                System.out.println("Hello World!");
            }
        });
于 2013-08-26T09:14:31.023 に答える
0

のオブジェクトを作成できませんInterface。タイプの参照を作成でき、Interfaceそれを実装する任意のクラスのオブジェクトを保持できますinterface

Fieldそのため、インターフェイスを実装するクラスが必要であり、名前をFieldImpl. 次に、次のように Field の参照で FiledImpl のオブジェクトを保持できます。

Field f = new FieldImpl();
于 2013-08-26T09:15:00.150 に答える
0

いずれにせよ、Field を実装するクラスが必要です。1 つのアプローチは、匿名クラスを使用することです。

Field myField = new Field() {
  // implementation of Field's methods.
}

または、Field を実装する名前付きクラスを作成し、そのクラスのインスタンスを作成することもできます。

于 2013-08-26T09:16:29.410 に答える
0

インターフェイス定義によると

インターフェイスはインスタンス化できず、実装されます。
インターフェイスを実装するクラスは、インターフェイスに記述されているすべてのメソッドを実装するか、抽象クラスである必要があります。
Java のオブジェクト参照は、インターフェイス タイプとして指定できます。その場合、それらは null であるか、インターフェイスを実装するオブジェクトにバインドされている必要があります。

于 2013-08-26T09:18:06.543 に答える