亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java 8 - 可选类

Optional 是一个容器对象,用于包含非空对象。可选对象用于表示不存在值的空值。这个类有各种实用方法来帮助代码将值处理为“可用”或“不可用”,而不是检查空值。它是在 Java 8 中引入的,类似于 Guava 中的 Optional。

类声明

以下是 java.util.Optional 的声明 类-

public final class Optional<T> extends Object

类方法

Sr.No. 方法和说明
1

静态 可选 empty()

返回一个空的 Optional 实例。

2

布尔等于(对象 obj)

指示某个其他对象是否“等于”这个 Optional。

3

可选过滤器(谓词谓词)

如果存在一个值并且该值与给定的谓词匹配,则返回一个描述该值的 Optional,否则返回一个空 Optional。

4

可选 flatMap(Function> 映射器)

如果存在值,则将提供的 Optional-bearing 映射函数应用于它,返回该结果,否则返回空 Optional。

5

T get()

如果此 Optional 中存在值,则返回该值,否则抛出 NoSuchElementException。

6

int hashCode()

返回当前值的哈希码值(如果有),如果不存在则返回 0(零)。

7

void ifPresent(Consumer consumer)

如果存在值,则使用该值调用指定的使用者,否则什么也不做。

8

布尔 isPresent()

如果存在值,则返回 true,否则返回 false。

9

可选 map(Function mapper)

如果存在值,则对其应用提供的映射函数,如果结果为非 null,则返回描述结果的 Optional。

10

静态可选 of(T值)

返回具有指定当前非空值的 Optional。

11

静态可选 ofNullable(T值)

返回一个描述指定值的Optional,如果非null,否则返回一个空的Optional。

12

T orElse(T 其他)

如果存在则返回值,否则返回其他值。

13

T orElseGet(Supplier other)

如果存在则返回该值,否则调用 other 并返回该调用的结果。

14

T orElseThrow(Supplier exceptionSupplier)

返回包含的值(如果存在),否则抛出由提供的供应商创建的异常。

15

字符串 toString()

返回此 Optional 适合调试的非空字符串表示形式。

这个类继承了以下类的方法 -

可选示例

使用您选择的任何编辑器创建以下 Java 程序,例如 C:\> JAVA。

Java8Tester.java

现场演示
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 - allows passed parameter to be null.
      Optional<Integer> a = Optional.ofNullable(value1);
		
      //Optional.of - throws NullPointerException if passed parameter is null
      Optional<Integer> b = Optional.of(value2);
      System.out.println(java8Tester.sum(a,b));
   }
	
   public Integer sum(Optional<Integer> a, Optional<Integer> b) {
      //Optional.isPresent - checks the value is present or not
		
      System.out.println("First parameter is present: " + a.isPresent());
      System.out.println("Second parameter is present: " + b.isPresent());
		
      //Optional.orElse - returns the value if present otherwise returns
      //the default value passed.
      Integer value1 = a.orElse(new Integer(0));
		
      //Optional.get - gets the value, value should be present
      Integer value2 = b.get();
      return value1 + value2;
   }
}

验证结果

使用 javac 编译类 编译器如下-

C:\JAVA>javac Java8Tester.java

现在按如下方式运行 Java8Tester -

C:\JAVA>java Java8Tester

它应该产生以下输出 -

First parameter is present: false
Second parameter is present: true
10

java

  1. Java final 关键字
  2. Java instanceof 运算符
  3. Java 继承
  4. Java 嵌套静态类
  5. Java 匿名类
  6. Java 单例类
  7. Java 反射
  8. Java ArrayList 类
  9. Java ObjectOutputStream 类
  10. Java 泛型
  11. Java 文件类
  12. Java 9 - 可选的类改进