【Java】 Void 类型
void 也算一个类型,而且是基本数据类型
和其它数据类型一样提供了对应的包装类Void
每个包装类都提供一个TYPE字节实例,返回对应的原型类实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | public static void main(String[] args) { Class<?>[] basicTypes = { void . class , boolean . class , char . class , byte . class , short . class , int . class , long . class , float . class , double . class }; Class<?>[] wrapperTypes = { Void. class , Boolean. class , Character. class , Byte. class , Short. class , Integer. class , Long. class , Float. class , Double. class }; Class<?>[] typeInWrapperTypes = { Void.TYPE, Boolean.TYPE, Character.TYPE, Byte.TYPE, Short.TYPE, Integer.TYPE, Long.TYPE, Float.TYPE, Double.TYPE }; System.out.println(Arrays.toString(basicTypes)); System.out.println(Arrays.toString(wrapperTypes)); System.out.println(Arrays.toString(typeInWrapperTypes)); System.out.println(Arrays.equals(basicTypes, typeInWrapperTypes)); } |
基础类型void 作为方法返回类型时,不能写return,否则编译报错
但是Void类型,必须提供返回值,返回Null值
1 2 3 4 5 6 | public void fun1() { // return null; } public Void fun2() { return null ; } |
可以通过反射设置Void类型,返回一个真实Void类型实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public static Void fun() { try { Class<Void> voidClass = Void. class ; Constructor<Void> declaredConstructor = voidClass.getDeclaredConstructor(); declaredConstructor.setAccessible( true ); Void aVoid = declaredConstructor.newInstance(); System.out.println(aVoid + " by reflect" ); System.out.println( "aVoid == null -> " + (aVoid == null )); return aVoid; } catch (Exception e) { e.printStackTrace(); } return null ; } |
打印结果:
1 2 | java.lang.Void @7f31245a by reflect aVoid == null -> false |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2020-06-07 【Java】【设计模式 Design Pattern】迭代器模式 Iterator/Cursor
2020-06-07 【Java】【设计模式 Design Pattern】命令模式 Command