Генераторы Java реализуются с использованием стирания типа. Это означает, что если у меня есть метод:
public void setMapParam(Map<String, Integer> p) { ... }
после компиляции, он будет в .class как:
public void setMapParam(Map p) { ... }
У меня есть JAR файл с общими классами и методами, подобными приведенным выше. Это всего лишь двоичный файл. Никакого исходного кода нет ничего.
Но когда я использую его в коде, автозаполнение Eclipse дает мне setMapParam(Map<String, Integer> p)
, хотя в двоичном формате это как setMapParam(Map p)
.
Как Eclipse теперь тип (Map<String, Integer>
), даже если подпись метода была стерта (до Map
)? Или я что-то упускаю?