id=(id==null)?"":id

在学习过滤器时遇到这样一行代码
id=(id==null)?"":id;

img


请教这行代码是什么意思

相当于下面的代码

if(id == null){
  id = "";  //当id为null时,赋值空字符串
}

三目表达式
如果id获取是null 则变为“”字符串,否则就还是原来的值

你把它拆分开,(id==null)?"":id 是一个整体,它做的就是给id赋值的操作。
再看(id==null)?"":id,它是意思是id如果是null,返回空字符串,否则返回id本身。

img

用这样就可以省略那句话了,三目运算 就是个 if
if("admin".equals(id)){
}

代码的意思是如果id为null,则赋值为”“,否则不变,其实最主要的作用是为id赋默认值,也就是空字符串,这样在使用id的时候就不会因为id为null报错了

这个是三元表达式,
当id==null
这个表达式id=(id==null)?"":id;结果是空字符串
当id==非空
这个表达式id=(id==null)?"":id;结果是id

对于有些选择分支结构,可以使用简单的条件运算符来代替:

if(a<b)
    min=a;
else
    min=b;

用三目表达式表示则为

min=(a<b)?a:b;

。题主题目的意思即为
当判断id==null时,id重新赋值为‘’ id=‘’
id!=null,id重新赋值 id=id

ifid==null){
id=‘’}else{
id=id
}

如有帮助望采纳