Мне любопытно, зачем нужен алмазный оператор в Java7? Мы можем смоделировать такое поведение с помощью простого статического универсального метода, который можно было бы добавить к коллекции API:Для чего нужен алмазный оператор в Java 7?
Код метода для HashMap:
public static <R, S> HashMap<R, S> getInstance() {
return new HashMap<R, S>();
}
И мы можем использовать его таким образом:
Map<String, List<String>> m = HashMap.getInstance();
И код, когда вы можете попробовать это поведение:
import java.util.HashMap;
import java.util.Map;
import java.util.List;
import java.util.Arrays;
public class Diamond {
public static void main(String... args) {
Map<String, List<String>> m = getInstance();
m.put("Hello", Arrays.asList("Peter", "Robert"));
System.out.println(m.toString());
}
public static <R, S> HashMap<R, S> getInstance() {
return new HashMap<R, S>();
}
}
Это не нужно, это просто делает ваш жизнь проще (т. е. вам больше не нужно создавать статический метод) ... – assylias
В Java 7 нет ничего нового, что нам ** нужно **, только вещи, которые могут сделать код более простым. –
Я думаю, что: "HashMap.getInstance();" будет проще, чем «новый HashMap <>();" И может быть там с Java 5. – balent