需要帮助了解此通用声明

时间:2014-11-21 21:31:10

标签: java generics

以下是来自java.util.concurrent.ScheduledExecutorService的方法:

/**
 * Creates and executes a ScheduledFuture that becomes enabled after the
 * given delay.
 *
 * @param callable the function to execute
 * @param delay the time from now to delay execution
 * @param unit the time unit of the delay parameter
 * @return a ScheduledFuture that can be used to extract result or cancel
 * @throws RejectedExecutionException if the task cannot be
 *         scheduled for execution
 * @throws NullPointerException if callable is null
 */
public <V> ScheduledFuture<V> schedule(Callable<V> callable,
                                       long delay, TimeUnit unit);

为什么有<V> ScheduledFuture<V>

这首先看一下方法上的两种返回类型。所以,如果V是,那么我们说布尔值,我们提供Callable<Boolean>作为第一个参数,该方法的返回类型是什么?它是布尔值,ScheduledFuture<Boolean>还是别的什么?

请有人为我打开包装。

1 个答案:

答案 0 :(得分:3)

  

为什么有<V> ScheduledFuture<V>

因为它是类型参数和返回类型。

<V>部分不是返回类型,它只是说&#34;这是一个带有单个类型参数V的通用方法。&#34;

所以我们有:

public                                            // Access modifier
<V>                                               // Type parameter
ScheduledFuture<V>                                // Return type
schedule                                          // Method name
(Callable<V> callable, long delay, TimeUnit unit) // Parameters