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

Что нового в Java 10

Итак, наконец-то ожидание закончилось, Java 10 теперь находится в GA. Классная функция этой сборки уже была в dis… С пометкой java, учебное пособие.

Итак, наконец-то ожидание закончилось, Java 10 теперь находится в GA. Классная функция этой сборки уже обсуждалась. Да, я говорю о var . В этом блоге я расскажу о некоторых новых функциях вместе с всемогущим var .

1. Необязательно#orElseThrow ()

Синоним Optional.get() но более интуитивно понятный. Он выдаст java.util. Исключение NoSuchElementException такое же, как get() но с четким пониманием того, что если значения там нет, метод может выдать исключение, поэтому разработчик подумает о том, чтобы обработать и исключительный случай.

class OptionalDemo {
    public void perform() {
        Optional result = 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() {
        List list = 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 новых метода. Коллекционеры класс.

  1. в неизменяемый список
  2. toUnmodifiableSet – Изменяемый набор
  3. к неизменяемой карте
class StreamsDemo {
    public void convertToUnmodifiableCollections(List input) {

        // 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;
    List list = 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”