JavaでCallableインターフェースを実装する方法は何ですか?

Java Callableインターフェースを実装するには、以下の手順に従う必要があります。

  1. クラスを定義し、Callableインターフェースを実装し、同時に希望する結果の型をジェネリックに指定します。例えば、整数を返したい場合は、以下のようにクラスを定義することができます:
public class MyCallable implements Callable<Integer> {
    @Override
    public Integer call() throws Exception {
        // 在这里编写任务逻辑
        return 42; // 返回你的结果
    }
}
  1. call()メソッドにタスクロジックを書いてください。このメソッドでは、計算を行ったり、データを処理したり、他の並列タスクを実行したりすることができます。
  2. Callableオブジェクトのインスタンスを作成することで、そのインスタンスをExecutorServiceに提出して実行させることができます。例えば:
ExecutorService executorService = Executors.newSingleThreadExecutor();
Future<Integer> future = executorService.submit(new MyCallable());
  1. submit()メソッドを呼び出すことで、CallableオブジェクトをExecutorServiceに提出することができます。このメソッドはFutureオブジェクトを返し、それを使用してタスクの結果を取得することができます。
  2. タスクの結果を取得したい場合は、Futureオブジェクトのget()メソッドを使うことができます。このメソッドは、タスクが完了して結果を返すまでブロックされます。例えば:
try {
    Integer result = future.get();
    System.out.println("任务结果为:" + result);
} catch (InterruptedException e) {
    e.printStackTrace();
} catch (ExecutionException e) {
    e.printStackTrace();
}

この例では、future.get()を呼び出してタスクの結果を取得し、コンソールに出力します。

Callableインターフェースを使用する際は、ExecutorServiceと組み合わせることで、マルチスレッド環境でタスクを実行し、結果を取得することができます。また、Futureオブジェクトを使用して、タスクをキャンセルしたり、実行状態を取得したりすることもできます。

bannerAds