Здесь проблема, вероятно, заключается в присваивании:
ItemsOfClass = getAllPeople().stream().filter(object -> object.getClass().equals(T)).collect(Collectors.toSet());
Созданный Set
методом collect()
не имеет тип Set<T>
, даже если вы отфильтровали только объект, класс которого T
.
На самом деле вы выполняете итерацию на Person
.Таким образом, вы собираете Set<Person>
Таким образом, вы обязаны явно указывать Set<Person>
в Set<T>
, например:
ItemsOfClass = (Set<T>) getAllPeople().stream()
.filter(object -> object.getClass().equals(T))
.collect(Collectors.toSet());
или Class::cast
, например:
ItemsOfClass = getAllPeople().stream()
.filter(object -> object.getClass().equals(T))
.map(T::cast)
.collect(Collectors.toSet());