Java 関数型インターフェースのサンプル(Runnable)

Javaの関数型インターフェースのRunnableのサンプルです。

目次

サンプル Runnableインターフェース
クラスにRunnableインターフェースを実装する
例外が発生する場合
  匿名クラスでRunnableインターフェースを使用する

Runnableインターフェース

インターフェース public interface Runnable
メソッド void run()
  • Runnableは、入力と出力ともにありません。
  • Runnableインターフェースを実装したクラスはrunメソッドをオーバーライドする必要があります
  • マルチスレッドで使用されます。
  • Runnableは走行可能という意味です。
  • 以下は、OracleのJava8のRunnableインターフェースのリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Runnable.html

関数型インターフェースのRunnableのサンプルです。

package test1;

public class Test1 {
	public static void main(String[] args) {

		Runnable make1 = () -> System.out.println("red");
		Runnable make2 = () -> {System.out.println("blue");};
		
		make1.run(); // red
		make2.run(); // blue
	}
}

importはしていません。java.langパッケージにあります。
6行目は、Runnableインターフェースを使用したラムダ式です。
7行目は、波括弧がついているパターンです。
9,10行目は、runメソッドで文字列を出力します。

 

クラスにRunnableインターフェースを実装する

package test1;

public class Test1 {
	public static void main(String[] args) {

		Make1 make1 = new Make1();
		make1.run();
	}
}
class Make1 implements Runnable {
	@Override
	public void run() {
		System.out.println("red"); // red
	}
}

7行目は、testメソッドです。引数と戻り値はありません。1回実行するのみです。
10行目は、Runnableインターフェースを実装しています。

例外が発生する場合

package test1;

public class Test1 {
	public static void main(String[] args) {
		Make1 make1 = new Make1();
		try {
			make1.run();
		} catch (Exception e) {
			System.out.println(e); //java.lang.ArithmeticException: / by zero
		}
	}
}
class Make1 implements Runnable {
	@Override
	public void run() {
		try {
			int num = 10 / 0;
		} catch (Exception e) {
			throw e;
		}
		System.out.println("red");
	}
}

17行目は、0で割るため例外が発生します。
例外は、runメソッド内で処理するかthrowします。throwしない場合呼び出し元に戻りません。

匿名クラスでRunnableインターフェースを使用する

package test1;

public class Test1 {
	public static void main(String[] args) {

		new Runnable() {
			@Override
			public void run() {
				System.out.println("red"); // red
			}
		}.run();
	}
}

6行目は、匿名クラスです。クラス名はありません。
13行目は、runメソッドです。引数と戻り値はありません。

関連の記事

Java 関数型インターフェースのサンプル(Consumer)
Java 関数型インターフェースのサンプル(Supplier)
Java 関数型インターフェースのサンプル(Function)

△上に戻る