当我浏览JDK 7时,我发现java.util.concurrent.RunnableFuture<V>
有一个run方法。我想知道在界面中重复相同的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();
}
答案 0 :(得分:25)
它在接口中定义,以便它们可以将RunnableFuture
特定的JavaDoc附加到它。没有技术意义。
答案 1 :(得分:1)
没有提供此类解释的文档。所以我想提出我的意见。
我认为它没有任何重大意义。想象一下界面世界的样子
public interface RunnableFuture<V> extends Runnable, Future<V> {
}
虽然它完全有效,但并没有明确说明其目的。因此,我认为只是为了便于理解run()
特定于RunnableFuture
接口的方法。因此,您知道通过覆盖run()
方法来放置可运行的逻辑。
我能想到的另一点是Runnable
是早期接口之一,如果你看到run()方法,它就是
public abstract void run();
和public
和abstract
个关键字是多余的,因为默认情况下,接口中的方法是public
和abstract
。即兴发挥可能是其中一个原因。