У меня есть класс 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
с типами, отличными от DataObject
(например, как указано выше ObjectRelationship
), очевидно, что внутри них не будет храниться никаких объектов DataObject. В этом случае мне нужно иметь возможность определить тип, с которым был инициирован «Данные» HashSet (например, сказать, является ли он «ObjectRelationship» или нет). Как мне это сделать?
tl; dr : Как мне указать тип, с которым в моем коде был инициирован Collection (в данном случае HashSet) (например, с помощью оператора if или switch или чего-то еще)?