Latest web development tutorials

Java 8 Дополнительные классы

Java 8 новых функций Java 8 новых функций


Дополнительный класс представляет собой объект-контейнер может быть нулевым. Если значение существует метод isPresent () возвращает истину, вызовите метод Get () возвращает объект.

Необязательно является контейнером: оно может содержать значения типа T, или просто сохранить нуль. Необязательные предлагает множество полезных способов, так что мы не проводить обнаружение явного нулевое значение.

Дополнительное введение класса это хорошее решение для исключения нулевого указателя.

объявление класса

Ниже приводится заявлениеjava.util.Optional <T> Класс:

public final class Optional<T>
extends Object

методы класса

Нет. Метод и описание
1 статический <T> Дополнительно <T> пусто ()

Назад пустой Дополнительный экземпляр.

2 булевы равно (OBJ Object)

Определение того, является ли равно Дополнительный другой объект.

3 Дополнительно <T> фильтр (предиката < ? Супер <T> сказуемое)

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

4 <U> Дополнительно <U> flatMap (функция <? Супер T, опционный <U >> картографа)

Если значение существует, способ отображения возвращаемого значения Необязательно, содержащаяся в настоящем документе, основаны, в противном случае она возвращает пустой Необязательно

5 T получаем ()

Если включить значение в этом необязательны, возвращаемого значения, в противном случае генерируется исключение: NoSuchElementException

6 INT хэш - код ()

Возвращает значение хэш-код существует, то возвращает 0, если значение не существует.

7 ifPresent недействительным (Consumer <? супер T > потребитель)

Если значение присутствует значение используется для вызова потребителя, в противном случае ничего не делать.

8 булево isPresent ()

Если значение существует метод возвращает истину, в противном случае возвращает ложь.

9 <U> Дополнительно <U> карта (функция <? Супер Т? Расширяет U> картографа)

Если значение метода отображения, наличие при условии, если она возвращает ненулевой, возвращает результат необязательное описание.

10 статический <T> Дополнительно <T> из (значение Т)

Возвращает указанное Факультативный ненулевое значение.

11 статический <T> Дополнительно <T> ofNullable (значение Т)

Если не равно нулю, возвращает указанное значение, описанное Дополнительно, в противном случае пустой Необязательно.

12 T OrElse (T прочее)

Если значение существует, возвращаемое значение, в противном случае другой.

13 T orElseGet (Поставщик <? Расширяет T > прочее)

Если значение существует, возвращаемое значение, в противном случае вызвать другой, и возвращает результат другой вызов.

14 <X расширяет Throwable> T orElseThrow ( Поставщик <? Расширяет X> exceptionSupplier)

Если значение присутствует, то возвращаемое значение содержит иначе выброшен Поставщиком унаследовали аномалии

15 Строка ToString ()

Возвращает непустая строка необязательными, используемый для отладки

Примечание: Эти методы наследуются от класса java.lang.Objectприходят.


Дополнительные примеры

Мы можем с помощью следующих примеров, чтобы лучше понять использование факультативных классов:

import java.util.Optional;

public class Java8Tester {
   public static void main(String args[]){
   
      Java8Tester java8Tester = new Java8Tester();
      Integer value1 = null;
      Integer value2 = new Integer(10);
		
      // Optional.ofNullable - 允许传递为 null 参数
      Optional<Integer> a = Optional.ofNullable(value1);
		
      // Optional.of - 如果传递的参数是 null,抛出异常 NullPointerException
      Optional<Integer> b = Optional.of(value2);
      System.out.println(java8Tester.sum(a,b));
   }
	
   public Integer sum(Optional<Integer> a, Optional<Integer> b){
	
      // Optional.isPresent - 判断值是否存在
		
      System.out.println("第一个参数值存在: " + a.isPresent());
      System.out.println("第二个参数值存在: " + b.isPresent());
		
      // Optional.orElse - 如果值存在,返回它,否则返回默认值
      Integer value1 = a.orElse(new Integer(0));
		
      //Optional.get - 获取值,值需要存在
      Integer value2 = b.get();
      return value1 + value2;
   }
}

Реализация выше сценария выход:

$ javac Java8Tester.java 
$ java Java8Tester
第一个参数值存在: false
第二个参数值存在: true
10

Java 8 новых функций Java 8 новых функций