谁敢告诉我这段代码什么意思,谢了。初学

list.isEmpty() ? null : (Certificate) list.get(0);
Certificate是个实体类。
问题补充

jk19910410 写道
如果list为空,返回null,否则返回list的第一个元素。
这是一个三目表达式。

谢了

6个回答

如果list为空,返回null,否则返回list的第一个元素。
这是一个三目表达式。

这个是If/else的简写形式,也是Java里唯一的三元表达式。
表达是?a:b
如果表达是为true则返回a否则返回b。

你这个就是如果list里没有元素就返回null,否则返回list里的第一个元素强转为Certificate类型

1、三目运算符 (表达式1)?(表达式2):(表达式3),计算方法是这样的:表达式1是一个逻辑表达式,如果其值为true,则整个表达式的值为表达式2的值,否则为表达式3的值

2、例子:int i = (5 > 3) ? (5 + 3) : (5 - 3);结果为i = 8.因为5 > 3为true,所以i = 5 + 3.

3、根据三目运算符的从右到左的结合性,我是这样划分的
year > a.year ? 1 : (year < a.year ? -1 : (month > a.month ? 1 : (month < a.month ? -1 : (day > a.day ? 1 : (day < a.day ? -1 : 0)))));
所以应该从最右边的那个表达式开始计算,结果应该是1、0、-1中的一个值。

以上纯属个人理解。没搞清楚你这个算法到底是什么意义。。。。还有你的compare()方法不能声明为静态。
多看看网站 这样的东西看看就能明白!

?:是一个三木运算符 a?b:c
a应该是一个boolean类型的值 或者是一个可以返回boolean类型的表达式

如果a的值为true 就把b作为整个表达式的 值 如果返回false 就把c最为整个表达式的值

如果用if else来替换的话

if(a){
return b;
}else{
return c;
}

呵呵,上面的高人都说的很清楚了呀!

意思如下
[code="java"]
if(list.isEmpty)//如果list为空
return null;
else
return list.get(0);//否则取顶元素
[/code]
一般用法为这个
[code="java"]
Object obj = list.isEmpty()?null:list.get(0);

//于是list中的元素如果没有就将obj赋值为null,否则赋值为list第0个元素
[/code]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐