Для меня «нестатические и статические ссылки» - это далеко не проблема «универсальные типы не совпадают».

ал с примерами изhttp://www.concretepage.com/java/jdk-8/java-8-unaryoperator-binaryoperator-example.

Что меня по-настоящему сбивает с толку, так это то, что когда я ошибочно помещаю неправильный тип в один из обобщений при формировании Collectors, компилятор java выдает мне очень вводящее в заблуждение сообщение:

На нестатический метод нельзя ссылаться из статического контекста

Моя ошибка не имеет ничего общего со статическим контекстом экземпляра в реальности:

Map<String, Map<Integer, Integer>> mapOfStudents = list.stream().collect(Collectors.groupingBy(Student::getClassName,
            Collectors.toMap(Student::getName, Student::getAge)));

Моя ошибка в типе возвращаемого значения. Когда я исправлю это и поставлю:

Map<String, Map<String, Integer>> mapOfStudents

все возвращается на круги своя.

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

РЕДАКТИРОВАТЬ:

~$ java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (build 1.8.0_121-8u121-b13-0ubuntu1.16.04.2-b13)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)

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

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