Java 9のJShellでラムダ式を実装する方法をわかりやすく解説
JShellとは何か
JShellは、Java 9から導入されたJava初のREPL(Read-Eval-Print Loop)ツールであり、コマンドライン上でJavaプログラミング言語の要素を対話的に試すことができる強力な機能です。このツールを活用すれば、クラス全体を用意しなくても、個々のコード断片や機能を単独で素早くテストできます。
JShellはコマンドライン上にシンプルで扱いやすいプログラミング環境を構築し、ユーザーが入力したコードを読み取り、その場で評価して結果を即座に出力します。また、ラムダ式とは、特定のクラスに属することなく生成できる関数のことで、JShell上でも簡単に定義して動作を確認できます。
JShellでラムダ式を実装する手順
まず、ターミナルまたはコマンドプロンプトでjshellコマンドを実行してJShellを起動します。次に、関数型インターフェースConsumerの変数にラムダ式を代入してみましょう。
C:\Users\User>jshell | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell> Consumer<String> s = (String s) -> System.out.println(s) s ==> $Lambda$14/1268066861@3159c4b8
ここで使用しているConsumer<T>は、java.util.functionパッケージに含まれる関数型インターフェースです。1つの引数を受け取って処理を実行し、結果を返さない操作を表します。上記の例では、文字列を受け取って標準出力に表示するラムダ式を変数sに割り当てています。
Tabキー補完でメソッド一覧を確認する
Consumerインターフェースにどのようなメソッドがあるか忘れてしまった場合でも心配いりません。作成した変数名の後にドット(.)を入力し、Tabキーを押してください。すると、その変数に対して呼び出し可能なメソッドの一覧が自動的に表示されます。
jshell> s.
accept( andThen( equals( getClass() hashCode()
notify() notifyAll() toString() wait(
jshell> s.accept("Welcome to Tutorialspoint")
Welcome to Tutorialspoint表示された候補の中からaccept()メソッドを選択し、引数として文字列を渡せば、ラムダ式で定義した処理がそのまま実行されます。このようにJShellを使えば、ラムダ式や関数型インターフェースの挙動をコンパイルやクラス作成なしに手軽に検証でき、Javaの学習やプロトタイピングに非常に便利です。
-
Java 9でJavaFXを使ってJShellをプログラムから実装する方法
JShellは、サンプル式を対話的に実行できるツールです。通常はコマンドラインから利用しますが、JavaFXアプリケーションの中でプログラム的にJShellを実装することも可能です。その場合、Javaプログラムに以下のパッケージをインポートする必要があります。import jdk.jshell.JShell; import jdk.jshell.SnippetEvent; import jdk.jshell.VarSnippet;これらのクラスの役割は次のとおりです。JShell:評価エンジンの本体。式や文を評価(eval)するためのAPIを提供します。SnippetEvent:評価結果として
-
JavaのJToggleButton実装ガイド:ON/OFF切替ボタンの作り方を解説
JToggleButtonとは JToggleButtonはAbstractButtonを拡張したクラスで、クリックするたびにONとOFFが切り替わるトグルボタンを実現するために使用されます。通常のボタンと異なり、押した状態を保持できるのが特徴です。 JToggleButtonの主な特徴 最初に押されたときは押し込まれた状態のままとなり、もう一度押してはじめて元の状態(押されていない状態)に戻ります。 ボタンが押されるたびにActionEventが発生します。 さらに、JToggleButtonはItemEventも発生させることができます。このイベントは、選択状態という概念を持つコンポー