Почему 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
. Импровизация может быть одной из причин.