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值,此时出现了 空指针

相关推荐
RedJACK~5 小时前
Go Ebiten小游戏开发:扫雷
开发语言·后端·golang
程序猿_极客5 小时前
【2025】16届蓝桥杯 Java 组全题详解(省赛真题 + 思路 + 代码)
java·开发语言·职场和发展·蓝桥杯
毕设源码-邱学长5 小时前
【开题答辩全过程】以 “万家电器”仓库管理系统的设计与实现为例,包含答辩的问题和答案
java·eclipse
摇滚侠5 小时前
Spring Boot3零基础教程,响应式编程的模型,笔记109
java·spring boot·笔记
wfsm6 小时前
flowable使用01
java·前端·servlet
员大头硬花生6 小时前
七、InnoDB引擎-架构-后台线程
java·数据库·mysql
玉树临风江流儿6 小时前
C++左值、右值、move移动函数
开发语言·c++
拾荒的小海螺6 小时前
JAVA:Spring Boot3 新特性解析的技术指南
java·开发语言·spring boot
程序猿20236 小时前
Python每日一练---第二天:合并两个有序数组
开发语言·python
椰羊sqrt6 小时前
CVE-2025-4334 深度分析:WordPress wp-registration 插件权限提升漏洞
android·开发语言·okhttp·网络安全