さまざまなコンストラクターを持つ DataSet というクラスがあり、それぞれが異なる型の変数を指定しています。次のようになります。
public class DataSet
{
private HashSet Data;
public DataSet( DataObject obj )
{
Data = new <DataObject>HashSet();
Data.add( obj );
}
public DataSet( ObjectRelationship rel )
{
Data = new <ObjectRelationship>HashSet();
Data.add( rel );
}
// etc.
注: 不完全な部分があるため、そのコードをまだテストしていません (現在作成中です)。
現在作成中の関数ではgetDataObjects()
、このセットが表すすべての DataObject オブジェクトを返す必要があります。クラスの HashSet を開始するコンストラクターの場合、(上記の など)Data
以外の型で、その中に格納されている DataObjects は明らかに存在しません。この場合、HashSet 'Data' が開始されたタイプを検出できる必要があります ('ObjectRelationship' であるかどうかを判断するなど)。どうすればいいですか?
tl;dr : コレクション (この場合は HashSet) がコード内で開始されたことを型に伝えるにはどうすればよいですか ('if' または 'switch' ステートメントなどを使用)。DataObject
ObjectRelationship