Универсальный вложенный шаблон Java не будет компилироваться

У меня проблема с вложенными шаблонами в шаблонах Java.

Вот общий случай:

public void doSomething(Set<? extends Number> set) {}

public void callDoSomething() {
    Set<Integer> set = new HashSet<Integer>();
    doSomething(set);
}

Это стандартные шаблоны Java, работает отлично.

Однако, если подстановочный знак становится вложенным, он больше не работает:

public void doSomething(Map<String, Set<? extends Number>> map) {}

public void callDoSomething() {
    Map<String, Set<Integer>> map = new HashMap<String, Set<Integer>>();
    doSomething(map);
}

Это приводит к ошибке компилятора.

Я пробовал множество приведений и подстановочных знаков, но я не могу заставить это работать. Я не помню, чтобы видел эту проблему раньше, и я работал с дженериками в течение многих лет. Я просто слишком устал и упускаю что-то очевидное?

Ответы на вопрос(3)

Ваш ответ на вопрос