Рубрики
Без рубрики

Использование var re в Java 10 2 выстрела

Я поделился тем, как работать с заявлениями var в старом посте. Если бы вы думали, что все в порядке, вам не пришлось бы писать заявление var. А теперь мне снова есть что вам представить…. Помечено явой, кореей, войной.

Я |/со старого поста //var//Поделился тем, как повторно обработать заявление.

Если вы думаете, что это все, вам не нужно будет писать оператор var . А теперь мне снова есть что вам представить. Если это так, то очарование будет создано при написании инструкции var//.

Дженерики

Начиная с Java 7, существовал оператор diamond, который кратко объявлялся при объявлении дженериков.

List strList = 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 ConcurrentMap getPersonMap() {
  var result = new ConcurrentHashMap();
  // ... 이것저것 처리
  return result;
}

Это происходит потому, что набор текста лаконичен, но человеку легко угадать тип. Это потому, что вам нужно знать только return . Простой.

Разве это не привлекательно? На самом деле, это вкус. Не имеет значения, используете ли вы существующий способ. Я не принуждал, я не собирался принуждать.//Но Если у вас есть хоть малейшее представление о доступе к оператору var ,//я просто делаю это, чтобы помочь вам.

Тогда наслаждайтесь приятной современной Явой. 끗.

Оригинал: “https://dev.to/composite/java-10-var-2-4f8a”