Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9のOptionalクラスに追加された新しいメソッドは何ですか?


オプションのクラス 非nullを含む場合と含まない場合があるコンテナを提供します 価値。 NullPointerException が発生するコード内の場所の数を減らすために、Java8で導入されたこのオプションのクラス 生成することができます。 Java 9は、オプションクラスに3つの新しいメソッドを追加しました: or() ifPresentOrElse() およびstream() デフォルトに対処するのに役立ちます 値。

Optional.or() または() Java 9で導入されたメソッドであり、このメソッドのパラメーターは機能インターフェースサプライヤー 。この方法では、常にオプションが提供されます 空ではないオブジェクト。オプションオブジェクトが空でない場合は、オプションを返します。 オブジェクト自体。それ以外の場合は、サプライヤーのオプションオブジェクトを返します。 作成します。

import java.io.IOException;
import java.util.Optional;
public class OptionalOrMethodTest {
   public static void main(String[] args) throws IOException {
      String str = null;
      Optional<String> opt = Optional.ofNullable(str);
      Optional<String> result = opt.or(() -> Optional.of("Adithya"));
      System.out.println(result);
   }  
}

出力

Optional[Adithya]


Optional.ifPresentOrElse() ifPresentOrElse() Java9で導入されたメソッド。これはifPresent()に似ています。 1つの違いがある方法は、もう1つ実行可能を追加したことです。 パラメータ。場合によっては、オプション オブジェクトは空です。実行可能のオブジェクトです。 インターフェイスを実行できます。

import java.util.Optional;
public class OptionalIfPresentOrElseTest {
   public static void main(String[] args) {
      String str = null;
      Optional<String> opt = Optional.ofNullable(str);
      opt.ifPresentOrElse(
            x -> System.out.println(x),
            () -> System.out.println("No value"));
   }
}

出力

No value


Optional.stream() Optional.stream() メソッドはJava9以降でサポートされています。このメソッドを使用して、オプションから新しいストリームオブジェクトを作成できます。 物体。オプションオブジェクトに値が含まれている場合、その値を含むストリームオブジェクトを返します。

import java.io.IOException;
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
public class OptionalStreamMethodTest {
   public static void main(String[] args) throws IOException {
      List<Optional<String>> list = List.of(
            Optional.of("Jai"),
            Optional.empty(),
            Optional.of("Adithya"));
      Stream<String> stream = list.stream().flatMap(Optional::stream);
      stream.forEach(System.out::println);
   }
}

出力

Jai
Adithya

  1. Java 9での@Deprecatedアノテーションの改善点は何ですか?

    @Deprecatedで注釈を付けることができる要素 この特定の要素が以下の理由で使用されなくなったことを意味します 使用するのは危険であり、エラーが発生する可能性があります。 将来のバージョンでは互換性がなくなる可能性があります。 将来のバージョンで削除される可能性があります。 より優れた、より効率的なソリューションがそれに取って代わりました。 Java 9には、次の2つの新しい要素が追加されています。以降 およびforRemoval 属性。 1)以降: この要素は、注釈付きAPI要素の非推奨バージョンを指定します。 2)forRemoval: 注釈付きのAPI要素を表す

  2. JavaでのCursorクラスの重要性は何ですか?

    カーソル オブジェクトのサブクラスです クラスであり、ポイントまたはインジケーターとして定義できます。 画面上。 カーソル ユーザーがマウスで操作するシステムからの入力を選択するために使用されます 。 カーソルで使用できるさまざまな種類のカーソル クラスはDEFAULT_CURSOR、CROSSHAIR_CURSOR、HAND_CURSOR、TEXT_CURSOR、WAIT_CURSOR Cursorクラスの重要なメソッドは、 getDefaultCursor()、getName()、getPredefinedCursor()、getSystemCustomCursor()です。 およびge