Java基础361问第16问——枚举为什么导致空指针?

我们看一段代码

java 复制代码
public enum Color {
    RED, BLUE, YELLOW;

    public static Color parse(String color) {
        return null;
    }
}

public static void main() {
        Color color = Color.parse("");
        // 极具迷惑性,大家日常开发肯定这么写过
        switch (color) {
            case RED:
                break;
            case BLUE:
                break;
            case YELLOW:
                break;
            default:
                break;
        }
    }

运行一下,发现了 空指针 Color.ordinal()' on a null object reference

为什么呢?

原来Color是一个继承了 Enum的特殊类,里面有一个 ordinal() 方法,当我们使用 switch去传入 color时,编译器内部会调用 Color的ordinal()方法去获取int值,此时出现了 空指针

相关推荐
省四收割者1 小时前
Go语言入门(20)-nil
开发语言·vscode·golang
19岁开始学习1 小时前
Go语言中的Zap日志库
开发语言·golang·xcode
数据知道1 小时前
Go基础:用Go语言操作MongoDB详解
服务器·开发语言·数据库·后端·mongodb·golang·go语言
爱喝白开水a1 小时前
2025时序数据库选型,从架构基因到AI赋能来解析
开发语言·数据库·人工智能·架构·langchain·transformer·时序数据库
朝新_1 小时前
【EE初阶 - 网络原理】网络通信
java·开发语言·网络·php·javaee
TeleostNaCl1 小时前
使用 jintellitype 库在 Java 程序中实现监听 Windows 全局快捷键(热键)
java·开发语言·windows·经验分享·kotlin·电脑
GISer_Jing1 小时前
前端GIS篇——WebGIS、WebGL、Java后端篇
java·前端·webgl
皮皮林5511 小时前
Spring Boot 实现微信登录,So Easy !
java
盛世隐者2 小时前
python包管理器——uv
开发语言·python·uv
细节控菜鸡2 小时前
【2025最新】ArcGIS for JS 实现地图卷帘效果
开发语言·javascript·arcgis