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. В качестве метода не принимает никаких параметров