广州网站开发 细致广州亦客网络,sql注入网站建设百度云,图库网站建设,免费建站软件哪个最好文章目录 一、介绍二、 java.lang.Void 特点 一、介绍
在Java中#xff0c;java.lang.Void 是一个特殊的包装类#xff0c;用于表示 void 类型。虽然 void 关键字在Java中通常用于表示方法没有返回值#xff0c;但 java.lang.Void 类提供了对 void 类型的一个有限的、有用的… 文章目录 一、介绍二、 java.lang.Void 特点 一、介绍
在Java中java.lang.Void 是一个特殊的包装类用于表示 void 类型。虽然 void 关键字在Java中通常用于表示方法没有返回值但 java.lang.Void 类提供了对 void 类型的一个有限的、有用的封装。
二、 java.lang.Void 特点
单例Void 类有一个私有的构造方法并且预定义了一个公共的、只读的 TYPE 字段它是 Void 类的一个实例。这意味着你不能创建 Void 类的其他实例只能使用 Void.TYPE。Void源码如下
// 类使用final关键字修饰说明该类不能被继承
public final class Void { /** * The Class object representing the primitive type void. */ SuppressWarnings(unchecked) public static final ClassVoid TYPE (ClassVoid) Class.getPrimitiveClass(void); // 构造函数使用private修饰说明该类不能被实例化private Void() {}
}在泛型中的使用Void类可能本身作用就只是不起任何作用但是本身只是一个占位符类。即Void类本身只是一个占位符类多用于泛型中作占位符使用。Void 在泛型编程中特别有用尤其是在涉及函数式接口和lambda表达式时。例如java.util.function.Function 接口在Java 8中引入它接受一个输入参数并返回一个输出值。如果函数没有返回值即返回类型为 void则可以使用 FunctionT, Void。反射由于 Void.TYPE 是 Class 的一个实例因此它可以用于反射API例如获取 void 类型的 Class 对象。
public class TestVoid {public void fun(String str) {}public static void main(String args[]){for(Method method : Test.class.getMethods()) {if(method.getReturnType().equals(Void.TYPE)) {System.out.println(method.getName());}}}
}总的来说java.lang.Void 提供了对 void 类型的一个封装使得在需要对象而不是基本类型的地方可以使用它。但是你应该谨慎使用它因为它在大多数情况下并不是必需的。