news 2026/11/2 6:39:08

页面500报String.hashCode?真相:switch变量是null

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
页面500报String.hashCode?真相:switch变量是null

页面500报String.hashCode?真相:switch变量是null

页面 500,控制台报错停在 String.hashCode——代码看着没毛病,switch 里的字符串也写得清清楚楚。真相是:那个字符串变量是 null。

原理:switch 对字符串做了什么

Java 7 开始,switch 支持 String。但底层 JVM 的 switch 只能按整数分派,所以编译器在背后做了翻译:先把字符串算出哈希值,switch 实际按哈希值跳转,命中分支后再用 equals() 比对一次原文(防止两个不同字符串哈希碰撞)。

所以 switch 一个字符串,第一步就是调用变量.hashCode()。变量是 null,调 hashCode() 就抛 NullPointerException——报错行停在 String.hashCode,把凶手明明白白写了出来。

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.hashCode()" because "<local2>" is null at Test.main(Test.java:9)

顺带一提:新版 JDK(17 以上)的报错更直白——它直接告诉你"因为 null"(上面那句 because … is null),连排查都省了;老 JDK 只会甩一行 String.hashCode 让你自己猜。看到这种报错,第一反应就应该是:哪个字符串是 null?

修法

switch 之前先判空,或者给变量一个默认值:

if(type==null){type="guest";}switch(type){case"admin":System.out.println("管理员");break;default:System.out.println("其他");}

重新运行,正常。

总结

记住这条:报错行不会说谎。看到 String.hashCode,先查你的字符串是不是 null。同理,看到别的"奇怪"报错行,先问一句:这一行在干什么?答案往往就是真相。

需要SpringBoot管理系统源码、SQL脚本、部署文档做学习参考,可以私信联系。项目仅作为编程学习、课程设计参考素材,不代写论文。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/2 6:38:34

199 元蓝牙AI录音卡,FunASR+本地大模型用下来真香

录音、转写、整理纪要、出思维导图&#xff0c;一块小卡片搞定 这两年录音设备接触了一圈——QwenNote A2、讯飞听见 M1、飞书妙记那款、钉钉 AI 录音笔这些都上手试过&#xff0c;价格在 1199 到 1999 这一档也都比对过。这些产品在各自领域都做到了前列&#xff0c;但拖了大半…

作者头像 李华
网站建设 2026/11/2 6:38:14

Hex为何松手后0.1秒完成识别?流式语音转写引擎原理全解析

Hex为何松手后0.1秒完成识别&#xff1f;流式语音转写引擎原理全解析 【免费下载链接】hex Local voice dictation for mac, windows and linux 项目地址: https://gitcode.com/GitHub_Trending/hex19/hex Hex 是一款本地优先&#xff08;local-first&#xff09;的语音…

作者头像 李华
网站建设 2026/11/2 6:37:07

基于opencode实现聊天室项目的一些AI知识

目录 提示词 &#xff08;Prompt&#xff09; 提示词工程&#xff08;Prompt Engineering&#xff09; 上下文工程(ContextEngineering) ai提示词 1.1 提示词 &#xff08;Prompt&#xff09; 提示词是你发送给⼤语⾔模型的输⼊内容&#xff0c;用来引导模型生成回答。它可…

作者头像 李华
网站建设 2026/11/2 6:32:32

健康哨兵:毫米波生命体征探测器,构筑养老健康监测防线

引言在养老照护工作中&#xff0c;除了跌倒意外&#xff0c;夜间睡眠期间的呼吸异常、心率波动、睡眠呼吸暂停、长时间离床&#xff0c;是威胁高龄、慢病老人健康的隐形风险。很多突发的心脑血管、呼吸类问题往往发生在深夜熟睡阶段。传统照护手段存在明显短板&#xff1a;人工…

作者头像 李华