2017-06-03 10 views
1

私は、企業の在庫を追跡するJavaFXアプリケーションを作成しています。ユーザーは部品や製品を追加/削除/変更することができます。JavaFX抽象クラスオブジェクトをarraylistに追加する

一部と製品クラスは属性とgetterメソッドとsetterメソッドを持っている、しかし、一部のクラスは抽象である -

private ObservableList<Part> allParts = FXCollections.observableArrayList(); 
private ObservableList<Product> products = FXCollections.observableArrayList(); 
private ObservableList<Part> associatedParts = FXCollections.observableArrayList(); 

方法 -

Product    Part<Abstract> 

id     id 
name     name 
price    price 
min     min 
max     max 
get/set    get/set 

私はテーブルビューに表示されている3つのArrayListを持っていますPartが抽象クラスでインスタンス化できないときに、新しいPartをallPartsおよびassociatedPartsのarraylistsに追加できますか?

特定の製品を特定の製品に関連付けるにはどうすればよいですか?各製品には常に1つ以上の関連パーツが必要です。

+1

リストに「Part」の任意のサブタイプを入れることができます。もし 'Foo'が' Part'のサブタイプであれば、インスタンスが 'Foo'ならば_は' Part'です。これは相続の心と魂です。リスコフ置換原理を参照してください。 –

+0

Javaの抽象リストが最適な例です。例: 'List list = new ArrayList();'と 'List list2 =新しいLinkedList();' – Sedrick

答えて

0

コメントサブクラスPartでそのインスタンスを使用することをお勧めします。
サブクラスProductには、対応する部分を追跡するためにprivate ObservableList<Part> associatedParts = FXCollections.observableArrayList();を追加します。

+0

あなたの助けに感謝します。 – cowboydan

+0

ようこそ。 stackoverflow.com/help/someone-answersを参照してください(そうしていない場合) – c0der

関連する問題