Javaswitch支撑的数据类型详解
目录
switch支撑的数据类型
支撑的数据类型
完成
switch支撑的10种数据类型和留意事项
switch支撑的数据类型
switch留意事项
switch支撑的数据类型
随着Java的不断发展,switch支撑的数据类型也有了改变,下面就来讲述switch如何来完成对新增数据类型的支撑。
支撑的数据类型
根本数据类型:int,byte,short,char
根本数据类型封装类:Integer,Byte,Short,Character
枚举类型:Enum(JDK5+开始支撑)
字符串类型:String(JDK7+开始支撑)
完成
switch底层是使用int类型来判别的,int类型是四个字节的整数型类型,所以只要字节小于或等于4的整数型类型都是能够转化成int类型的,所以支撑byte[1字节],short[2字节]都是能够了解的,long[8字节]超出了int的范围,因此不支撑。
关于枚举和字符(串)也是转化为int类型间接完成的。
关于这一点,咱们能够验证的,下面举例验证switch如何完成对枚举数据类型的支撑。
直接上代码:
publicclassSwitchTest{
publicstaticvoidmain(String[]args){
Colorcolor=Color.YELLOW;
switch(color){
caseRED:
System.out.println(“RED:”+color.getName());
break;
caseYELLOW:
System.out.println(“GREEN:”+color.getName());
break;
caseBLUE:
System.out.println(“BLUE:”+color.getName());
break;
caseBLANK:
System.out.println(“BLANK:”+color.getName());
break;
default:
System.out.println(“DEFAULT”);
break;
}
}
publicenumColor{
RED(“红色”,1),
YELLOW(“绿色”,2),
BLUE(“蓝色”,3),
BLANK(“黑色”,4);
privateStringname;
privateintindex;
privateColor(Stringname,intindex){
this.name=name;
this.index=index;
}
publicstaticStringgetName(intindex){
for(Colorc:Color.values()){
if(c.getIndex()==index){
returnc.name;
}
}
returnnull;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetIndex(){
returnindex;
}
publicvoidsetIndex(intindex){
this.index=index;
}
}
}
编译后生成了SwitchTestColor.class和SwitchTest.class两个文件,翻开编译成SwitchTest.class的过渡文件SwitchTestColor.class和SwitchTest.class两个文件,翻开编译成SwitchTest.class的过渡文件SwitchTestColor.class和SwitchTest.class两个文件,翻开编译成SwitchTest.class的过渡文件SwitchTestColor.class:
咱们发现多了一个数组Color[]arrayOfColor,本来枚举是再编译的过程中产生了一个新的数组,switch是经过转化成数组的形式来完成对枚举类型的支撑。
咱们经过相同的方式也能够看到switch对String类型的支撑也是经过将String转化为int类型得以完成的,这儿就不再赘述。switch对四种根本数据类型封装类的支撑是经过对封装类的拆箱来完成的点击了解
留意封装类不能为null,不然会报空指针反常的。
switch支撑的10种数据类型和留意事项
switch支撑的数据类型
【牢记不支撑long、double、float及其包装类型】
根本数据类型:char,byte,short,int
包装数据类型:Character,Byte,Short,Integer
枚举类型:Enum
字符串类型:String(Jdk7+开始支撑)
Colorcolor=Color.RED;
switch(color){
caseRED:
System.out.println(“red”);
break;
caseBLUE:
System.out.println(“blue”);
break;
caseYELLOW:
System.out.println(“yellow”);
break;
default:
System.out.println(“default”);
switch留意事项
case里边必须跟break,不然程序会一个个case执行下去,直到最终一个break的case或者default呈现
case条件里边只能是常量或者字面常量,而且不能为null,不然编译报错
default语句可有可无,最多只能有一个
主张在switch语句前判别参数是否为null:switch的参数不能为null,不然会报空指针反常【null的类型不确定】
publicclassDemo{
publicstaticvoidmain(String[]args){
newDemo().go(null);
}
publicvoidgo(Stringstr){
switch(str){
case”null”:
System.out.println(“null”);
break;
case”123″:
System.out.println(123);
break;
default:
System.out.println(“default”);
}
}
},
Tips:本站所有资源均收集自互联网,分享目的仅供学习参考,资源版权归该资源的合法拥有者所有。
Tips:若本站所发布的资源侵犯到您的合法权益,请及时联系 hqteam@qq.com 删除!
暂无评论内容