Почему java.утиль.параллельный.У RunnableFuture есть метод run ()?

когда я проходил через 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();
}  

2 ответов


это определено в интерфейсе, чтобы они могли прикрепить RunnableFuture-специфический JavaDoc для него. Нет технические значение.


нет документов, которые предоставляют такое объяснение. Поэтому я собираюсь высказать свое мнение.

Я не думаю, что это имеет большое значение. Представьте, как выглядит мир интерфейса

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

хотя он совершенно действителен, он не ясно указывает свою цель. Так что на мой взгляд это просто для облегчения понимания run() конкретный метод к RunnableFuture интерфейс. Так что вы знаете, чтобы поставить свою логику runnable, переопределив run() метод.

еще один момент, который я могу думать, это Runnable является одним из ранних интерфейсов, и если вы видите метод run (), это

public abstract void run();

и public и abstract ключевые слова избыточны, поскольку методы в интерфейсе по умолчанию public и abstract. Импровизация может быть одной из причин.