java8 --- Дополнительное использование - Advanced 1-- Опыт

 

  https://yq.aliyun.com/articles/716209?spm=a2c4e.11153940.0.0.6a255562myIiAj

Например, правильное использование

0 , используя классический    
        Сотрудник employee1 = новый Сотрудник ( "employee1" );
        Сотрудник employee2 = новый Сотрудник ( "employee1" );
        Компания Компания = новый Company ( "компания" );
        Список <Employee> список = Arrays.asList (employee1, employee2);
        company.setEmployees (список);
        // определяется сотрудником компании, не существует список возвращения работника не возвращает пустой набор 
        Необязательный <Компания> = опциональный Optional.ofNullable (Компания);
        System.out.println (optional.map (ком -> com.getEmployees ()) OrElse (Collections.emptyList ()).);

. 1 , The IfPresent () определяет альтернативы ЕСЛИ
     // быть оптимизированы 
    String = Referer request.getHeader ( "Referer" );
     ЕСЛИ (StringUtils.isNotEmpty (Referer)) {
        . request.getSession () SetAttribute ( "реферер" , реферер);
    }
    // java8 
    Optional.ofNullable (request.getHeader ( "реферер" ))
        .ifPresent (s -> {
            request.getSession () SetAttribute (. "реферер" , с);
    });

2, с заменой OrElse IF ... еще ...
      // оптимизировать 
    струне редирект = (String) session.getAttribute ( "Referer" );
     IF (редирект == NULL ) {
        result.put ( "реферер", "/ индекс" );
    } Еще {
        result.put ( "Referer" , перенаправлять);
    }

    // java8 
    Необязательный <String> Перенаправление = Optional.ofNullable ((String) session.getAttribute ( "реферер" ));
    result.put ( "реферер", redirect.orElse ( "/ индекс" ));

3,用orElseThrow替换бросить  новый Exception
     // 原写法 
    проблемы ProblemBLOBs = problemService.selectByPrimaryKey (ID);
    если (проблема == NULL ) {
         бросить  новый PageException (PROBLEM_NOT_EXIST);
    }
    model.addAttribute ( "проблема" , проблема);
     // новая редакция 
    Необязательный <ProblemBLOBs> = проблема Optional.ofNullable (problemService.selectByPrimaryKey (ID));
     // бросить исключение 
    model.addAttribute ( "проблема", problem.orElseThrow (() -> новый новый PageException (PROBLEM_NOT_EXIST)));
 . 4, возвращаемое значение метода также может быть использован предпочтительно Факультативный упаковки, так что вызывающий абонент определяется , является ли воздух Е.

 

 

Использование точек:

1. Не следует использовать метод Get ()

    Вот источник метода GET, то время, когда значение равно нулю, генерируется исключение, цель этого конфликта, и мы используем такие методы, наша цель состоит в том, чтобы уничтожить ненормальное, как это возможно.

     общественности T прибудет () {

            если (значение == NULL ) {

                бросить  новый NoSuchElementException ( «Нет значения настоящего» );

            }

            возвращать значение;

     }

    // это определено утратившим никакой разницы нет , предпочтительно , не так используется 

    Необязательный <String> STR = Optional.of ( далее «Hello World» );

            если (str.isPresent ()) {

                str.get ();

            }

 

2. Избегайте использования метода isPresent ()

3. Есть ли в качестве атрибута экземпляра класса представляет собой контейнер, опционально

4. В качестве метода не принимает никаких параметров

  

 

1. Не следует использовать метод Get ()

рекомендация

отwww.cnblogs.com/hahajava/p/12191206.html