Java Void 引用类型的用途?

2022-08-31 07:00:27

有一个 Java -- 大写 V-- 引用类型。我见过的唯一情况是参数化sVoidCallable

final Callable<Void> callable = new Callable<Void>() {
            public Void call() {
                foobar();
                return null;
            }
        };

Java 引用类型还有其他用途吗?除了?如果是,你有例子吗?Voidnull


答案 1

Void已经成为你不感兴趣的通用参数的惯例。没有理由使用任何其他不可实例化类型,例如 .System

它也经常用于例如值(尽管用作映射不必接受值)和。MapCollections.newSetFromMapBooleannulljava.security.PrivilegedAction


答案 2

您可以使用反射创建 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