首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么java.util.concurrent.RunnableFuture有一个run()方法?

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

Stack Overflow用户
提问于 2014-08-02 15:32:00
回答 1查看 1.2K关注 0票数 18

当我浏览JDK7时,我发现java.util.concurrent.RunnableFuture<V>有一个run方法。我想知道,当接口已经扩展了Runnable时,在接口中复制相同的run方法签名有什么意义。

代码语言:javascript
复制
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();
}  
EN

回答 1

Stack Overflow用户

发布于 2014-08-02 15:45:22

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

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

代码语言:javascript
复制
public interface RunnableFuture<V> extends Runnable, Future<V> {
}

尽管它是完全有效的,但它并没有清楚地表明它的目的。所以在我看来,它只是为了便于理解特定于RunnableFuture接口的run()方法而提供的。以便您知道通过重写run()方法来放置可运行逻辑。

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

代码语言:javascript
复制
public abstract void run();

publicabstract关键字是多余的,因为接口中的方法默认情况下是publicabstract。即兴发挥这可能是原因之一。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25092787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档