Search code examples
javagenericscallable

Java: Parameterized Runnable


Standard Runnable interface has only non-parametrized run() method. There is also Callable<V> interface with call() method returning result of generic type. I need to pass generic parameter, something like this:

interface MyRunnable<E> {
  public abstract void run(E reference);
}
Is there any standard interface for this purpose or I must declare that basic one by myself?


Solution

  • Typically you would implement Runnable or Callable with a class that supports a generic input parameter; e.g.

    public class MyRunnable<T> implements Runnable {
      private final T t;
    
      public MyRunnable(T t) {
        this.t = t;
      }
    
      public void run() {
        // Reference t.
      }
    }