# Class FutureWrapper&lt;K,V&gt; (5.0.3)

    public abstract class FutureWrapper<K,V> implements Future<V>

`FutureWrapper` is a simple [Future](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html) that wraps a
parent `Future`. This class is thread-safe.

## Inheritance

[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \> FutureWrapper\<K,V\>

## Implements

[Future\<V\>](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future<V>.html)

## Inherited Members

[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) [Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) [Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) [Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) [Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) [Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) [Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) [Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) [Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) [Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) [Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)

| ## Type Parameters ||
|---|---|
| **Name** | **Description** |
| `K` |   |
| `V` |   |

## Constructors

### FutureWrapper(Future\<K\> parent)

    public FutureWrapper(Future<K> parent)

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `parent` | `https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html<K>` |

## Methods

### absorbParentException(Throwable cause)

    protected V absorbParentException(Throwable cause)

Override this method if you want to suppress an exception thrown by the
parent and return a value instead.

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `cause` | `https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `V` |   |

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html` |   |

### cancel(boolean mayInterruptIfRunning)

    public boolean cancel(boolean mayInterruptIfRunning)

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `mayInterruptIfRunning` | `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |   |

### convertException(Throwable cause)

    protected abstract Throwable convertException(Throwable cause)

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `cause` | `https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html` |   |

### equals(@Nullable Object obj)

    public final boolean equals(@Nullable Object obj)

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `obj` | `https://docs.oracle.com/javase/8/docs/api/java/lang/@org/jspecify/annotations/Nullable Object.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |   |

**Overrides** [Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-)

### get()

    public V get()

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `V` |   |

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html` |   |
| `https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html` |   |

### get(long timeout, TimeUnit unit)

    public V get(long timeout, TimeUnit unit)

| **Parameters** ||
|---|---|
| **Name** | **Description** |
| `timeout` | `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |
| `unit` | `https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `V` |   |

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html` |   |
| `https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeoutException.html` |   |
| `https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutionException.html` |   |

### hashCode()

    public final int hashCode()

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |   |

**Overrides** [Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--)

### isCancelled()

    public boolean isCancelled()

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |   |

### isDone()

    public boolean isDone()

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |   |

### wrap(@Nullable K key)

    protected abstract V wrap(@Nullable K key)

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `key` | `@org.jspecify.annotations.Nullable K` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `V` |   |

| **Exceptions** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html` |   |