-1

A、B、Cの3つのクラスがあります。

クラス A にはタイプ B の 2 つのオブジェクトが含まれます。クラス C (「コンテナー」) には A オブジェクトのリストがあり、作成されたすべての B オブジェクトに対して直接反復処理を行う必要がある場合があるため、A に含まれる B オブジェクトのリストオブジェクト。

class A {
    private B b1;
    private B b2;
    ...
}
class B {...}
class C {
    List<A> aList;
    List<B> bList;
    ...
    }

これは冗長で、明らかにエラーが発生しやすいです。

aListの A オブジェクトに含まれるすべての B オブジェクトのセットを反復処理する方法はありますか?

次のようなコードを避けるために、構文糖衣を探しています。

public B hasFoo(Q){
   for(A a:aList){
     if(a.getB1().hasFoo(Q))return a.getB1();
     if(a.getB2().hasFoo(Q))return a.getB2();
   }
}
4

3 に答える 3

0

'B' がそのクラスの外で (論理的に) アクセスされる必要がある場合、それを作成しても意味がありませんprivate。したがって、B を作成するだけpublicで、フィールドを直接アドレス指定するのではなく、標準のゲッターとセッターを提供するようにしてください。

于 2013-07-03T20:43:00.787 に答える