Недавно я столкнулся с проблемой Java. У меня есть HashSet hashSet
с суперклассом «Foo». Этот набор заполняется подклассами foo
: bar
и dop
. Как вернуть новый HashSet, заполненный значениями, только значениями bar
или dop
?вернуть новый набор для одного класса
Я попытался следующие:
public Set<Foo> getObjectsFromClass(Foo foo) {
Set<Foo> objectsFromClass = new HashSet<>();
for (Foo value: hashSet) {
if ((value instanceof Bar) && (foo instanceof Bar))
objectsFromClass.add(value);
if ((value instanceof Dop) && (foo instanceof Dop))
objectsFromClass.add(value);
}
}
return objectsFromClass;
}
Но проблема в том, что я должен отказаться от аргумента с объектом, в то время как я просто хочу, чтобы определить класс. Как я могу это решить?
Почему я не могу построить набор: 'Set x = getObjectsFromClass (Dop.class);' –
@username_HI: Поскольку вы объявили, что метод вернет 'Set'. Я могу изменить ответ, чтобы сделать это, если вы хотите, хотя ... (Совершено сейчас.) –
Большое спасибо :)! –