LonelyBishop:
私は2つのクラス「BC」と「BD」の2つのオブジェクトのArrayListを持つクラス「A」を持っています。BCとBDは抽象クラス「B」から継承します。
それでは、私が行うのに苦労しています、私は()、単一のアドオンを作りたい、です。パラメータは、BDタイプである場合、パラメータとしてBオブジェクトを取得し、パラメータがBC型の場合BCオブジェクト追加、及びBDを追加する方法は、オブジェクト。これを実行したり、私は別々の追加方法を確認する必要があり、正しい方法はありますか?
public class A
{
private ArrayList<BC> bcArrayList= new ArrayList<>();
private ArrayList<BD> bcArrayList= new ArrayList<>();
public void add(ArrayList<B> bArrayList)
{
//m = create new object of type, either BC or BD;
bArrayList.add(m);
}
}
ヨアキムダニエルソン:
私はあなたがリストから複数のオブジェクトを追加したい場合は、その後1つの取る方法があることを考えるList<B>
と使用をinstanceof
public void add(List<B> bList) {
for (B b : bList) {
if (b instanceof BC) {
bcArrayList.add((BC)b);
}
if (b instanceof BD) {
bdArrayList.add((BD)b);
}
}
}
しかし、単一のオブジェクトを追加するために、私はそれを行うにはクリーンな方法をメソッドのオーバーロードを使用していると思います
public void add(BC b) {
bcArrayList.add(b);
}
public void add(BD b) {
bdArrayList.add(b);
}
もちろん、すべてのあなたのクラスに追加することができ、このようにそれらを使用します
A a = new A();
a.add(new BC());
a.add(new BD());
List<B> list = new ArrayList<>();
list.add(new BC());
list.add(new BD());
a.add(list);