Callable (Java SE 22 & JDK 22)
Description: declaration: module: java.base, package: java.util.concurrent, interface: Callable
Keywords: java.util.concurrent.Callable interface

Module java.base
Package java.util.concurrent

# Interface Callable<V>

Type Parameters:
  `V` - the result type of method `call`

All Known Subinterfaces:
  `DocumentationTool.DocumentationTask`, `JavaCompiler.CompilationTask`

All Known Implementing Classes:
  `JavacTask`

Functional Interface:
  This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface Callable<V>
A task that returns a result and may throw an exception. Implementors define a single method with no arguments called `call`.

The `Callable` interface is similar to `Runnable`, in that both are designed for classes whose instances are potentially executed by another thread. A `Runnable`, however, does not return a result and cannot throw a checked exception.

The `Executors` class contains utility methods to convert from other common forms to `Callable` classes.

Since:
  1.5
See Also:
  - `Executor`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `V`
  `call()`
  Computes a result, or throws an exception if unable to do so.

- ## Method Details

  - ### call

    V call() throws Exception
    Computes a result, or throws an exception if unable to do so.
    Returns:
      computed result
    Throws:
      `Exception` - if unable to compute a result