Я |/со старого поста //var//Поделился тем, как повторно обработать заявление.
Если вы думаете, что это все, вам не нужно будет писать оператор var . А теперь мне снова есть что вам представить. Если это так, то очарование будет создано при написании инструкции var//.
Дженерики
Начиная с Java 7, существовал оператор diamond, который кратко объявлялся при объявлении дженериков.
ListstrList = new ArrayList<>();
Если это так, то это Если вы уменьшите его до var ?
var strList = new ArrayList();
Да. К сожалению, var не может выводить универсальные типы, поэтому он не может писать бриллианты и должен явно объявлять универсальные типы. Конечно, количество букв немного меньше, но это не совсем привлекательно. Однако, если универсальный тип предоставляет четкий метод, история будет другой. |/Если вы использовали много пружин, вы также рассмотрели Джексона, который имеет дело с JSON. 여기서//вар |/Значение раскрывается.
var mapper = new ObjectMapper(); var myData = mapper.readValue(jsonString, mapper.getTypeFactory().collectionType(List.class, String.class));
Если вы сделаете это |/Мои данные Тип результатов вывода Правильно Список<Строка> яп. На самом деле, дженерики в дженериках невероятно сложно определить и объявить из-за стирания типов Java. 특히/| Коллекция/| 계열이나 Когда вы пишете много Map , предполагаемый код не ведет себя странно из-за дженериков, выдает ошибки компиляции или Это ежедневный рефлекс. Поэтому некоторые библиотеки предоставляют универсальные помощники для устранения этого неудобства, такие как Джексон, который является наиболее часто используемым примером.
Но, к сожалению, это не так.
var emptyList = Collections.emptyList();
Потому что универсальные типы неоднозначны. Конечно, во время выполнения я хочу знать, что это значит, но компилятор, к сожалению, этого не принимает. Поэтому вы должны сделать это, как показано ниже.
var emptyList = Collections.emptyList(); // 아래와 같다 List emptyList = Collections.emptyList();
вернуться 변수
Конечно в Если у вас простой тип, такой как или Строка , существующий метод довольно понятен, но если значение return понятно при вводе сложного класса или универсального, выгодно использовать var . Например,
public ConcurrentMapgetPersonMap() { var result = new ConcurrentHashMap (); // ... 이것저것 처리 return result; }
Это происходит потому, что набор текста лаконичен, но человеку легко угадать тип. Это потому, что вам нужно знать только return . Простой.
Разве это не привлекательно? На самом деле, это вкус. Не имеет значения, используете ли вы существующий способ. Я не принуждал, я не собирался принуждать.//Но Если у вас есть хоть малейшее представление о доступе к оператору var ,//я просто делаю это, чтобы помочь вам.
Тогда наслаждайтесь приятной современной Явой. 끗.
Оригинал: “https://dev.to/composite/java-10-var-2-4f8a”