Java中的三元运算符总是返回null

Java中的三元运算符总是返回null,java,eclipse,spring-boot,Java,Eclipse,Spring Boot,我对Java没有太多的经验,但我在C#中使用了三元运算符,这是一件非常琐碎的事情,以至于我在使用它的时候没有考虑它 最近,我启动了一个Spring Boot项目,我有如下内容: dto.setProfilePhoto(dao.getProfilePhoto() != null ? dao.getProfilePhoto() : "images/default-img.png"); 但是个人资料照片总是归零。 然后我打开了调试器模式,计算了一些表达式,这完全把我弄糊涂了 表达

我对Java没有太多的经验,但我在C#中使用了三元运算符,这是一件非常琐碎的事情,以至于我在使用它的时候没有考虑它

最近,我启动了一个Spring Boot项目,我有如下内容:

dto.setProfilePhoto(dao.getProfilePhoto() != null ? dao.getProfilePhoto() : "images/default-img.png");
但是个人资料照片总是归零。 然后我打开了调试器模式,计算了一些表达式,这完全把我弄糊涂了

表达式:布尔t=true?真:假;-->空的

表达式:布尔t=10>2?真:假;-->空的

为什么要为这些表达式获取空值

编辑:这里是getter和setter

public String getProfilePhoto() {
    return ProfilePhoto;
}

public void setProfilePhoto(String profilePhoto) {
    ProfilePhoto = profilePhoto;
}

您没有提到
dao.getProfilePhoto()
的实现,例如,它可能在第二次调用中前进到
null
。您可以按如下方式进行尝试:

String profilePhoto = dao.getProfilePhoto();
dto.setProfilePhoto(profilePhoto != null ? profilePhoto : "images/default-img.png");

它不仅高效,而且使它不知道
dao.getProfilePhoto()

的实现,因为调试器没有分析正确的代码;重新启动IDE并重试。该三元运算符无法计算为
null
,因此如果在该语句之后
dto.profilePhoto
null
,则
setProfilePhoto()
方法不起作用。既然我们看不到这种方法,我们也就无能为力了。请寻求进一步帮助。这些表达式中的
null
,因为它们是不返回任何内容的赋值。do
boolean t=true?真:假;返回t,还是更好更短的
正确?true:false
@Andreas请参见上面的getter和setter。@howlger或更好、更短的,true。