swtich的参数为什么不允许是String形的。 int str = null; switch(str) { case "asdf":System.out.println("sdfas"); } 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 恩。老大说的对。貌似VB.NET里的select case 就可以不止INT型的 BOOLEAN的都行。嘿嘿 合法的case表达式:1 与判断表达式相匹配2 自身是常量3 不能有两个相同的case 规定只能为byte,short,int,char,jdk1.5又引入枚举类型,只能为这5种之一吧 jdk7 will support String switch switch中条件只能使用常量,枚举 swtich是否能作用在byte 上,是否能作用在long上,是否能作用在String上?switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。 switch 不能接受类型的引用类型。。不能接受,Integer,Short,Char,String 也属于这一类中,所以不能用了 因为进入 case 分支的测试是 x == y,如果用String 就要 x.equal(y) 了,语法不支持,所以不允许咯 java中swithch语句只能探测int类型值 switch 这种属于结构化程序设计中的语法,在面向对象设计中应该使用多态来取代 switch 的多选分支。 学习了,以前只知道switch不能用string,现在明白了 String是一个final类型的对象,并且产生的对象一般是对象的引用,所以用case的“==”来判断str==str2比较的是常量池中对象的地址, 不知道这样总结对嘛O(∩_∩)O哈哈~,大家多指教拉了拉 这个跟switch不能用String没关系,只是规定不能用 openjdk上好像有人在做让swith支持string的项目 转不成int类型 主要是因为switch只支持int 兼容的数据类型吧 string 是对像,不是基本类型,所以不行 java中线程同步问题,。。。。 马士兵说重写equals方法必须重写HashCode方法,有疑问! 记录过多问题。 Java中String.Split() 中要求 正则表达式,如何写? 弟兄们,进来探讨一个小技术问题. 初学:关于异常处理的问题实在是怪... 请问:数据输出的问题 关于weblogic对oracle的clob字段的问题,望高手指点! 请教Java连接mysql数据库的问题,谢谢! 如何实现多线程中单写多读? lucene+heritrix做个局域网搜索引擎 帮忙看看啊!如何用接口、抽象类、继承三种方法实现各种几何物体面积的计算
貌似VB.NET里的select case 就可以不止INT型的 BOOLEAN的都行。嘿嘿
1 与判断表达式相匹配
2 自身是常量
3 不能有两个相同的case
switch(expr1)中,
expr1是一个整数表达式。
因此传递给 switch 和 case 语句的参数应该是 int、 short、 char
或者 byte。long,
string 都不能作用于swtich。
switch 不能接受类型的引用类型。。不能接受,Integer,Short,Char,String 也属于这一类中,所以不能用了
如果用String 就要 x.equal(y) 了,
语法不支持,所以不允许咯
String是一个final类型的对象,并且产生的对象一般是对象的引用,所以用case的“==”来判断str==str2比较的是常量池中对象的地址,
不知道这样总结对嘛O(∩_∩)O哈哈~,大家多指教拉了拉