Если объявить переменную с помощью var (как предлагается в верном решении) следующим образом
var inputStream = Files.newInputStream(Paths.get(in));
то применение метода getClass() к созданному объекту следующим образом
System.out.println(inputStream.getClass());
выдаст следующее: "class sun.nio.ch.ChannelInputStream".
Если я правильно понимаю, это означает, что вместо var мы бы могли явно написать класс ChannelInputStream.
Однако, следующий код
ChannelInputStream inputStream = Files.newInputStream(Paths.get(in));
не работает. Такого класса просто не находится.
Это как так получается?
P.S. Саму задачу я решил, указывая вместо var абстрактный класс InputStream, но стало интересно какой класс нам даёт var и отсюда возник такой вопрос.