public int compare(final Item i1, final Item i2) {
final Float itemCode1 = i1.getItemCode();
final Float itemCode2 = i2.getItemCode();
return itemCode1 == null ? -1 :
itemCode2 == null ? 1 :
i1.getItemCode().compareTo(itemCode2);}
这是一个我需要澄清的代码段。提前感谢任何帮助
答案 0 :(得分:1)
它比较了两个Item
个对象。
如果第一个Item
代码为空,则返回-1,这意味着第一个Item
将在第二个Item
之前订购。
否则,如果第二个Item
代码为空,则返回1,这意味着第二个Item
将在第一个Item
之前订购。
否则将比较两个项目代码(两个浮点数的比较),并且该比较的结果将决定顺序。
答案 1 :(得分:0)
这是一个令你烦恼的漂亮的双重地狱吗?
它的含义与:
相同If(itemCode1 == null)
return -1;
else if (itemCode2 == null)
return 1;
else
return i1.getItemCode().compareTo(itemCode2);
你可以看到使用多个ternaires是不是很可读,所以避免这个pratice;)
答案 2 :(得分:0)
这相当于以下代码:
public int compare(final Item i1, final Item i2) {
final Float itemCode1 = i1.getItemCode();
final Float itemCode2 = i2.getItemCode();
if (itemCode1 == null) {
return -1;
} else if (itemCode2 == null) {
return 1;
} else {
// I changed from i1.getItemCode() to itemCode1
return itemCode1.compareTo(itemCode2);
}
}
答案 3 :(得分:-1)
if(itemCode1 == null)
{
//-1
}
else{
if( itemCode2 ==null){
{//1}
else{
i1.getItemCode().compareTo(itemCode2)
}