Switch能否用String类型做参数?
2024-08-31 14:20:38
switch(expr):
其中,expr参数可以是一个枚举常量(由整型或字符类型实现)或一个整数表达式,其中整数表达式可以是基本类型int或其包装类Integer。由于byte、short和char类型都可以隐式转换为int,因此这些类型以及它们对应的包装类都可以作为expr参数。而long,float,double等类型都不能够隐式转换为int类型,因此它们不能作为expr参数。如果一定要使用他们,必须将其强制转换为int类型才可以。
在Java 7中,switch开始支持String类型。从本质来讲,switch对字符串的支持,其实是int类型值得匹配。其实现原理为:通过对case后面的String对象调用hashCode()方法,得到一个int类型的hash值,然后用这个hash值来唯一标识这个case。如果匹配,接着会调用字符串的String.equals()方法进行匹配,如果没有匹配成功,说明不存在。
String变量不能为null,同时,switch的case子句中使用的字符串也不能为null。
最新文章
- DDD 领域驱动设计-三个问题思考实体和值对象(续)
- lamp遇到问题
- hadoop 日志分析
- freemarker解析模板报错问题
- 列式存储 V.S. 行式存储
- 【转】java静态代码块和构造方法执行顺序
- bzoj1688: [Usaco2005 Open]Disease Manangement 疾病管理
- Spring Aop重要概念介绍及应用实例结合分析
- CPP: 跨平台生成GUID/UUID
- C++ Win32控制台应用程序捕捉关闭事件
- WCF技术剖析之十一:异步操作在WCF中的应用(下篇)
- IIS总提示输入用户名和密码
- Ubuntu配置OpenStack 二:配置时间同步NTP和安装数据库Maridb以及问题总结
- Windows下免安装版mysql5.7的初始密码
- word search(二维数组中查找单词(匹配字符串))
- linux的远程唤醒
- Delphi MDI 子窗体的创建和销毁 [zhuan]
- ansible教程
- HDU - 4370 0 or 1
- MVC与单元测试实践之健身网站(三)-角色与权限