当我浏览JDK 7时,我发现java.util.concurrent.RunnableFuture<V>
有一个run方法。我想知道在接口中重复相同的运行方法签名的意义是什么,因为它已经扩展了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();
}
它是在接口中定义的,以便他们可以将RunnableFuture
特定的JavaDoc附加到它。没有技术意义
没有文档提供这样的解释。因此,我将提供我的意见。
我认为它没有什么重大意义。想象一下界面世界是什么样子public interface RunnableFuture<V> extends Runnable, Future<V> {
}
虽然它是完全有效的,但它没有清楚地表明它的目的。所以在我看来,这只是为了方便理解RunnableFuture
接口特定的run()
方法。这样你就知道通过重写run()
方法来放置可运行逻辑。
我能想到的另一点是Runnable
是早期的接口之一如果你看到run()方法它是
public abstract void run();
关键字、public
和abstract
是冗余的,因为接口中的方法默认为public
和abstract
。即兴发挥可能是原因之一。