前言: Java学习的过程中,平时写代码的时候我们会经常用到void,我们Java开发技术员都知道void代表不返回任何东西,这样理
Java学习的过程中,平时写代码的时候我们会经常用到void,我们Java开发技术员都知道void代表不返回任何东西,这样理解也是对的,不过这只是它表面意思,那么它的类型有哪些呢,内涵意义又是什么,今天就来说一说void关键字属于什么类型。
1、void关键字到底是什么类型?
Java不像是php这些弱类型的语言,Java编程语言是强类型的,意思就是说我们的方法必须要有一个确定类型的返回值,举个例子
public String test(){};
上面这个test方法有一个String类型的返回值,我们也可以返回int等基础类型的。不管返回什么都要返回一个确定的类型。
现在!!!出现了一个问题,我们的方法也可以返回void,那么void肯定也是一种数据类型吧。但是Java好像只提供了两种数据类型:基本数据类型和引用数据类型。那这个void到底是什么呢?其实你可以把他理解成一个特殊的数据类型也可以理解成一个方法的修饰符。
2、从Void看void
我们的基础类型好像都有一个封装类,比如int基本类型的封装类是Integer,char基本类型的封装类是Character,void也不例外,他也有一个封装类叫做Void,没错就是把“v”换成了大写的V。你可以这样去理解Void:
其实Void类是一个不可实例化的占位符类,用来保存一个引用代表Java关键字void的Class对象。
Void类型不可以继承和实例化。而且修饰方法时候必须返回null。
下面我们再来研究研究这个Void。
(1)确定类型:Void是一个类,void就是一个基本类型
public class Test {
public static void main(String[] args) {
System.out.println(Void.class);
System.out.println(void.class); }}
//output
//class Java.lang.Void
//void
(2)基本使用:必须且只能返回null
public class Test {
//返回void,return可有可无
public void a1() {
return;
} //必须且只能返回null
public Void a2() {
return null;
}
}
(3)使用场景:在反射中确定某个函数的返回类型
public class Test {
// 在这里定义两个方法:
//(1)a方法返回void
//(2)b方法返回int
public void a() {}
public int b() {
return 1;
}
public static void main(String args[]) {
for (Method method : Test.class.getMethods()) {
if (method.getReturnType().equals(Void.TYPE)) {
System.out.println("返回void的方法是:"+method.getName());
}
else if(method.getReturnType().equals(Integer.TYPE)) {
System.out.println("返回int的方法是:"+method.getName());
}
}
}
}//output
//返回void的方法是:main
//返回int的方法是:b
//返回void的方法是:a
(4)使用场景:泛型中使用
Future用来保存结果。Future的get方法返回结果(类型为T)。但如果操作并没有返回值呢?这种情况下就可以用Future表示。当调用get后结果计算完毕则返回后将会返回null。
Void也用于无值的Map中,例如Map<,Void>这样map将具Set有一样的功能。
文章出自:http://qh.itpxw.cn/peixun/software/202191211.html
免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员
用户级别:10
机构名称:IT培训网
联 系 人:罗老师
联系电话:13783581536
联系手机:13783581536
在线客服:
在 线 QQ:
电子邮件:
网站域名:http://www.itpxw.cn
注册时间:2016-07-18 11:07
最后登录:2024-02-20 13:02
Java定义方法的格式是什么?IT培训网小编来告诉大家。所谓方法...
大家在Java教程中会学到关于Java消息推送的知识,那么,Java消息...
常用的Java日期格式转换有哪些?IT培训网小编来告诉大家。 1...
Java创建对象数组的方法是什么?IT培训网小编来告诉大家。Ja...