0

私の質問はかなり単純です。チャートを作成するためのビルダーを作成しようとしています。チャートデータは、私の仲間のプログラマーが作成するプログラムに応じてオブジェクトによって埋められます。したがって、iveObjectInterfaceは、オブジェクトが常に持つ特定のメソッドがあることを確認するために呼び出されるインターフェイスを使用しました。

私の質問は、これらのオブジェクト(どのタイプかわからない)をArrayListに追加したい場合、次のように追加することは可能ですか?

ArrayList<ObjectInterface> data = new ArrayList<ObjectInterface>();
ObjectType Test = new ObjectType("Test");
data.add(test);

この例では、ObjectTypeは、ObjectInterface

これは合法ですか?

4

3 に答える 3

3

ObjectTypeが thenのサブタイプ (または実装) である場合ObjectInterface、それは有効です。Javaコンパイラはありませんか?それはあなたのすべての「これは合法ですか」タイプの質問に答えます;)

于 2012-12-14T15:48:43.117 に答える
2

はい、合法です。ObjectInterfaceたとえば、ObjectTypeのサブタイプをに追加できますArrayList<ObjectInterface>

于 2012-12-14T15:47:29.073 に答える
2

はい、あなたの例はまったく問題ありません。

さらに、かなり良いデザインだと思います。@duffymo によって提案されたもう 1 つの改良点はList、左側で使用することです。

List<ObjectInterface> data = new ArrayList<ObjectInterface>();

この方法dataは、具体的なリストの実装に関してではなく、抽象リスト インターフェイスに関して宣言されます。

于 2012-12-14T15:48:07.530 に答える