6

我创建了一个单元测试:

new Callable() {
@Override
public Object call() throws
         .....

我在 Eclipse 中收到警告:

Callable is a raw type. References to generic type Callable<V> 
should be parameterized

我应该编写如下代码:

new Callable<Object>()  

是否消除警告?似乎只有junit测试,添加额外的代码没有意义......谢谢。

4

3 回答 3

8

是的,避免原始类型并使用泛型类型是一种很好的做法。UsingCallable<Object>清楚地表明 Callable 旨在返回任何类型的对象。使用Callable并不清楚。

于 2012-07-02T10:00:39.850 回答
7

如果您的操作没有返回值(或返回没有任何意义)。您应该java.lang.Void用作类型参数。

new Callable<Void>() {

  public Void call() throws Exception {
    // do work
    return null; // <-- This statement is required.
  }

}
于 2012-07-02T10:05:16.133 回答
3

Runnable is a good substitute for Callable< Void >.

于 2012-07-02T21:33:04.983 回答