我创建了一个单元测试:
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测试,没有任何意义添加额外的代码... 感谢。
答案 0 :(得分:8)
是的,避免原始类型和使用泛型类型是一种很好的做法。使用Callable<Object>
清楚地表明Callable旨在返回任何类型的Object。使用Callable
并没有明确说明。
答案 1 :(得分:7)
如果您的操作没有返回值(或者返回没有任何意义)。您应该使用java.lang.Void
作为类型参数。
new Callable<Void>() {
public Void call() throws Exception {
// do work
return null; // <-- This statement is required.
}
}
答案 2 :(得分:3)
Runnable是Callable&lt;的良好替代品。 Void&gt;。