问题
有一个JavaVoid
--大写V - reference type。我见过它唯一的情况是参数化Callable
s
final Callable<Void> callable = new Callable<Void>() {
public Void call() {
foobar();
return null;
}
};
JavaVoid
参考类型还有其他用途吗?是否可以分配除null
以外的任何其他内容?如果是的话,你有例子吗?
#1 热门回答(108 赞)
Void
已成为你不感兴趣的泛型参数的约定。没有理由要使用任何其他非实例化类型,例如System
。
它也常用于例如Map
值(尽管Collections.newSetFromMap
用Boolean
as映射不必接受null
值)和java.security.PrivilegedAction
。
几年前我写了aweblog entryonVoid
a。
#2 热门回答(43 赞)
你可以使用反射创建Void实例,但它们对任何事物都没有用。 Void是一种表示泛型方法不返回任何内容的方法。
Constructor<Void> constructor = Void.class.getDeclaredConstructor();
constructor.setAccessible(true);
Void v = constructor.newInstance();
System.out.println("I have a " + v);
打印像
I have a java.lang.Void@75636731
#3 热门回答(26 赞)
Future<Void>
像魅力一样。 :)