为什么java.util.concurrent.RunnableFuture有一个run()方法?

当我浏览JDK 7时,我发现它有一个run方法。我想知道当接口中复制相同的运行方法签名时,它的意义是什么。java.util.concurrent.RunnableFuture<V>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();
}  

答案 1

它是在接口中定义的,以便他们可以将特定于JavaDoc附加到它。没有技术意义。RunnableFuture


答案 2

没有文档提供这样的解释。因此,我将提供我的意见。

我不认为它有任何重大意义。想象一下界面世界的样子

public interface RunnableFuture<V> extends Runnable, Future<V> {
}

虽然它是完全有效的,但它并没有清楚地表明它的目的。因此,在我看来,它只是为了便于理解特定于接口的方法而提供的。这样你就知道通过重写方法来放置可运行的逻辑。run()RunnableFuturerun()

我能想到的另一点是早期的接口之一,如果你看到run()方法,它是Runnable

public abstract void run();

和 关键字是多余的,因为接口中的方法默认为 和 。即兴创作可能是原因之一。publicabstractpublicabstract


推荐