问题描述
list.isEmpty() ? null : (Certificate) list.get(0);Certificate是个实体类。问题补充jk19910410 写道
解决方案
如果list为空,返回null,否则返回list的第一个元素。这是一个三目表达式。
解决方案二:
意思如下if(list.isEmpty)//如果list为空 return null;else return list.get(0);//否则取顶元素一般用法为这个Object obj = list.isEmpty()?null:list.get(0);//于是list中的元素如果没有就将obj赋值为null,否则赋值为list第0个元素
解决方案三:
呵呵,上面的高人都说的很清楚了呀!
解决方案四:
?:是一个三木运算符 a?b:c a应该是一个boolean类型的值 或者是一个可以返回boolean类型的表达式如果a的值为true 就把b作为整个表达式的 值 如果返回false 就把c最为整个表达式的值如果用if else来替换的话 if(a){ return b;}else{ return c;}
解决方案五:
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()方法不能声明为静态。 多看看网站 这样的东西看看就能明白!
解决方案六:
这个是If/else的简写形式,也是Java里唯一的三元表达式。表达是?a:b如果表达是为true则返回a否则返回b。你这个就是如果list里没有元素就返回null,否则返回list里的第一个元素强转为Certificate类型