List<List<HashSet<Integer>>>not assigned List<List<? extends Set<Integer>>>for the same reason List<HashSet<Integer>>cannot be assigned List<Set<Integer>>.
You can get it for compilation by changing this:
public List<List<? extends Set<Integer>>> f2(){
in it:
public List<? extends List<? extends Set<Integer>>> f2(){
, , , (.. "List<HashSet<Integer>> List<Set<Integer>>" ), , Java .
, Circle Shape, List<Circle> List<Shape>. , List<Circle> add(Shape), Square, , , Square List<Circle>.
, , . List<? extends Shape> , E, , E . , E get(int), add(E) . List<? extends Shape> List<Shape>, List<Circle>, List<? extends Circle> .. (? super : , , )
, , :
List<HashSet<Integer>> List<? extends Set<Integer>>- generics , (,
List<...>) , sub/super-type. List<List<HashSet<Integer>>> List<List<? extends Set<Integer>>> List<...> List<? extends ...>, . ( , , , 80% , .)
, trashgod BalusC , , , . List<List<Set<Integer>>> . , , , . : List<ImmutableSet<Integer>> List<Set<Integer>>, ImmutableSet<Integer> List<Set<Integer>>, List<ImmutableSet<Integer>>, List<Set<Integer>>.