termino - ¿Por qué java.util.concurrent.RunnableFuture tiene un método run()?
runnable java (2)
No hay documentos que proporcionen tal explicación. Así que voy a dar mi opinión.
No creo que tenga mayor importancia. Imagina cómo se ve el mundo de la interfaz.
public interface RunnableFuture<V> extends Runnable, Future<V> {
}
Aunque es perfectamente válido, no indica claramente su propósito. Entonces, en mi opinión, solo se ha proporcionado para una fácil comprensión del método run()
específico de la interfaz RunnableFuture
. Para que sepa poner su lógica ejecutable anulando el método run()
.
Otro punto en el que puedo pensar es que Runnable
es una de las primeras interfaces y si ves el método run () es
public abstract void run();
y public
palabras clave public
y abstract
son redundantes, ya que los métodos en una interfaz son, por defecto, public
y abstract
. Improvisar esta podría ser una de las razones.
Mientras revisaba el JDK 7, encontré que java.util.concurrent.RunnableFuture<V>
tiene un método de ejecución. Me pregunto cuál es el significado de duplicar la misma firma de método de ejecución en la interfaz cuando ya se extiende Runnable
.
package java.util.concurrent;
public interface RunnableFuture<V> extends Runnable, Future<V> {
/**
* Sets this Future to the result of its computation
* unless it has been cancelled.
*/
void run();
}
Se define en la interfaz para que puedan adjuntar RunnableFuture
específico para RunnableFuture
. No hay importancia técnica .