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 .