Пример по generics из Философии Java

233
20 октября 2017, 12:17

Приветствую всех! Читаю у Брюса Эккеля про дженерики, попался в качестве примера такой код:

 package net.mindview.util;
 import java.util.*;
 public class New {
 public static <K,V> Map<K,V> map() {
      return new HashMap<K,V>();
   }
 }
 public class LimitsOfInference {
     static void f(Map<Person, List<? extends Pet>> petPeople) {}
     public static void main(String[] args) {
          // f(New.map()); // Does not compile
     }
 }

И объяснение:

Type inference doesn’t work for anything other than assignment. If you pass the result of a method call such as New.map( ) as an argument to another method, the compiler will not try to perform type inference. Instead it will treat the method call as though the return value is assigned to a variable of type Object.

И тем не менее я воспроизвел этот код в IDE, он успешно скомпилировался и запустился. Это ошибка или информация в книге устарела? У меня jdk 8.

READ ALSO
Сохранение InMem DB в файл Android Room

Сохранение InMem DB в файл Android Room

Собственно, есть необходимость шифровать базу данных, сейчас работает так - все данные в бд зашифрованы, но сейчас все на SQLLiteБыло решено перевести...

245
Размен 100 рублей монетами 2, 5 и 10 [требует правки]

Размен 100 рублей монетами 2, 5 и 10 [требует правки]

ЗдравствуйтеКак посчитать аналитически число вариантов размена 100 рублей монетами по 10, 5 и 2 рубля? Как выглядит код прямого перебора?

317
Закрытие сокета по таймауту

Закрытие сокета по таймауту

как с этим бороться ?

246
Как распарсить файл формата .trk на байты в Java?

Как распарсить файл формата .trk на байты в Java?

Есть моделька ноты с соответствующими ей полямиИз этих нот сделана музыкальная дорожка, судя по всему у нее формат файла MIDI

244