Сокращение определения Java-объекта или ярлыки?
Есть ли более быстрый способ создания экземпляров объектов в Java, когда нет необходимости перепечатывать класс? Например, посмотрите на этот экземпляр:
HashMap<Integer, ArrayList<ActivityRecord>> days = new HashMap<Integer, ArrayList<ActivityRecord>>();
Я хотел бы, чтобы стенография была такой:
HashMap<Integer, ArrayList<ActivityRecord>> days = new();
С другой стороны, я также был бы счастлив с ярлыком Eclipse, который автоматически завершал создание экземпляра для использования конструктора без параметров.
3 ответа
Если вы используете Java 7 и выше, вы можете использовать оператор diamond:
HashMap<Integer, ArrayList<ActivityRecord>> days = new HashMap<>();
Кроме того, при объявлении переменных рекомендуется использовать интерфейсы, когда это возможно, вместо конкретных классов. Таким образом, вышеприведенное действительно будет:
Map<Integer, List<ActivityRecord>> days = new HashMap<>();
Если вы используете Java 6, вы можете сделать это с помощью Google Guava:
Map<Integer, List<ActivityRecord>> days = Maps.newHashMap();
Для дальнейшего чтения вы можете проверить раздел " Вывод типов" и "Реализация общих классов" в документации "Вывод типов".
Если вы используете Java 6 (или более раннюю версию), то Google Guava вам пригодится
Map<Integer, List<ActivityRecord>> days = Maps.newHashMap();