Итак, наконец-то ожидание закончилось, Java 10 теперь находится в GA. Классная функция этой сборки уже обсуждалась. Да, я говорю о var
. В этом блоге я расскажу о некоторых новых функциях вместе с всемогущим var
.
1. Необязательно#orElseThrow ()
Синоним Optional.get()
но более интуитивно понятный. Он выдаст java.util. Исключение NoSuchElementException
такое же, как get()
но с четким пониманием того, что если значения там нет, метод может выдать исключение, поэтому разработчик подумает о том, чтобы обработать и исключительный случай.
class OptionalDemo { public void perform() { Optionalresult = calculate(); // It'll throw the exception String result1 = result.get(); // It'll also throw the exception but by it's name // developer might think of handling the exception String result1 = result.orElseThrow(); } public Optional calculate() { return Optional.empty(); } }
2. копия() в Списке, Наборе и Карте
Добавлена копия() в List, Set и Map для создания неизменяемых коллекций() из данной коллекции. Этот метод проверяет, является ли коллекция уже типом java.util. Неизменяемые Коллекции. Abstract ImmutableMap
затем просто верните, что в противном случае создайте новую неизменяемую коллекцию из заданной.
class UnmodifiableCollectionDemo { public void usingList() { Listlist = List.of(1, 2, 3, 4, 5); // already ImmutableCollection so simply returns List unmodifiable1 = List.copyOf(list); List list1 = new ArrayList(); list1.add(1); list1.add(2); // Creates new ImmutableCollection and returns List unmodifiable = List.copyOf(list1); } }
3. Новые методы, добавленные в коллекторы
Чтобы собрать streamresult как неизменяемую коллекцию, в java.util.stream добавлены 3 новых метода. Коллекционеры
класс.
- в неизменяемый список
- toUnmodifiableSet – Изменяемый набор
- к неизменяемой карте
class StreamsDemo { public void convertToUnmodifiableCollections(Listinput) { // List demo List list = input.stream() .map(String::toUpperCase) .collect(Collectors.toUnmodifiableList()); // Set demo Set set = input.stream() .map(String::toUpperCase) .collect(Collectors.toUnmodifiableSet()); // Map demo Map map = input.stream() .map(String::toUpperCase) .collect(Collectors.totoUnmodifiableMap(String::toString, String::length)); } }
4. var – Вывод типа Локальной переменной
Вывод типа был введен с помощью лямбд. Теперь в Java 10 введено новое ключевое слово var
для вывода типа локальной переменной. Это позволит удалить код церемонии для инициализации локальных переменных и сохранить статическую типизацию java. Тип будет определен компилятором во время компиляции.
public void varDemo() { int i = 10; Listlist = new ArrayList<>(); Map map = new HashMap<>(); // With var above code can be written as var i = 10; var list = new ArrayList (); var map = new HashMap (); }
Вывод типа может использоваться только с локальными переменными, и как только тип выведен, он не может быть изменен.
public void demo() { var name = "Jitendra"; name = 3; // Not allowed }
Доступ ко всем методам целевого типа будет осуществляться с помощью объявленной переменной.
public void demo() { var list = new ArrayList(); list.add("Jitendra"); list.add("Singh"); }
Счастливого кодирования 😀 😀 😀 !!! Если у вас есть какие-либо отзывы, пожалуйста, прокомментируйте их ниже.
Оригинал: “https://dev.to/jeetmp3/whats-new-in-java-10-43hf”