关于java三元组的问题

在改代码的时候,发现一个奇怪的地方,举例如下

@Test
    public void buildTest(){
        TT t = new TT();
        Long time = t==null?System.currentTimeMillis():t.getTime();
        System.out.println("done");
    }

    @Data
    public static class TT{
        Long time;
    }

这个地方运行就会报错,空指针异常
在这里插入图片描述
后来查了一下,GPT是这么回答的:
对于一个三元表达式,它会在执行的时候逐个计算其分支,然后根据条件的真假来选择返回哪个分支的结果。问题在于,如果某个分支中有引用类型(例如调用方法或访问属性),而这个引用值为 null,那么在执行这个分支的时候就会触发空指针异常。

这是因为在执行分支时,Java 会尝试解引用引用类型(调用其方法或访问其属性),但是如果引用值为 null,就无法继续操作。这就导致了空指针异常。
如果不是引用类型,直接放null是没有问题的,切记

你可能感兴趣的:(日常工作问题,java,开发语言)