当我浏览JDK7时,我发现java.util.concurrent.RunnableFuture<V>
有一个run方法。我想知道,当接口已经扩展了Runnable
时,在接口中复制相同的run方法签名有什么意义。
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();
}
发布于 2014-08-02 15:45:22
没有文档提供这样的解释。因此,我将提供我的观点。
我不认为它有任何重大意义。想象一下界面世界是什么样子
public interface RunnableFuture<V> extends Runnable, Future<V> {
}
尽管它是完全有效的,但它并没有清楚地表明它的目的。所以在我看来,它只是为了便于理解特定于RunnableFuture
接口的run()
方法而提供的。以便您知道通过重写run()
方法来放置可运行逻辑。
我能想到的另一点是Runnable
是早期的接口之一,如果您看到run()方法,它就是
public abstract void run();
public
和abstract
关键字是多余的,因为接口中的方法默认情况下是public
和abstract
。即兴发挥这可能是原因之一。
https://stackoverflow.com/questions/25092787
复制相似问题