2016-09-28 14 views
2

を失うことなく、Javaのコレクションを実装します、addAll()、およびその他のメソッドを直接BusinessObjectCollectionオブジェクトに追加できます。は、私は2つの属性が含まれているクラスを持っている情報

だから私はこのように私のクラスを変更します。

@lombok.Data 
public class BusinessObjectCollection<T> implements Collection<T>, Serializable{ 
    protected List<T> elements; 
    protected Integer totalCount; 
    public BusinessObjectCollection() { 
     this.elements = new ArrayList<>(); 
     this.totalCount = 0; 
    } 

    @Override 
    public boolean addAll(Collection<? extends T> c) { 
     return elements.addAll(c); 
    } 

    @Override 
    public boolean removeAll(Collection<?> c) { 
     return elements.removeAll(c); 
    } 

    [...] 
} 

私の問題は、私はこれを行う場合、私のオブジェクトは、いくつかの情報を失うことです。私は "要素"と "totalCount"属性を見ることができません。

enter image description here

それがCollectionインタフェースを使用して、この属性を維持することは可能ですか?

いいえ、良い選択肢がありますか?

+1

これはデバッガの機能のようです。コレクションに出会うたびに、実際のデータの代わりに要素が表示されます。これは、より複雑なコレクション(HashSetと思う)にとって非常に役に立ちます。なぜなら、あなたが内容に興味を持っているクラスをデバッグするとき、そしてそれらがあなたのコードでどのように使われるのかということです。だから、これに対する答えは、どのIDEを使用するかによって異なります(したがって、どのデバッガを使用するか) – Thirler

答えて

2

IDEで機能を表示しています。あなたの場合はおそらくIntelliJ。

Collectionに遭遇すると、実際の実装ではなく、コレクションの内容のみが表示されます。 HashSetなど、非常に複雑な構造を持つコレクションを使用しているため、これはほとんどの場合非常に便利です。しかし、独自のコレクションを開発するときは、デバッガでその実際の動作を確認する必要があります。

IntelliJでは、これは「コレクションクラスの代替ビュー」と呼ばれます。 manualはこれを無効にする方法を説明しています。

Eclipseでもこれも利用できます(ただし、デフォルトではオフになっているようです)。この機能は論理構造と呼ばれます。このビューは、変数ビューにトグルボタン( '論理構造の表示')を使用して有効にすることができます。

+0

ありがとう。私はこの設定があることを知らなかった。 – YLombardi

関連する問題