有点可耻地问,因为经过多年的Java编码,我从来没有使用过这种编码方式,而且我似乎每次都会遇到它,但这次请我们一劳永逸地学习它。
以下是代码段:
private int batchSize;
private int firstRecord;
private int recordCount;
public int getLastRecord() {
return firstRecord + batchSize > recordCount ? recordCount : firstRecord + batchSize;
}
任何人都可以解释一下这个方法将针对参数的不同值返回什么,或者指向我可以向我解释的教程。非常感谢。
答案 0 :(得分:3)
这是一个三元表达式(在Java中,它被官方称为Conditional Operator ? :
),它意味着
if (firstRecord + batchSize > recordCount) {
return recordCount;
} else {
return firstRecord + batchSize;
}
答案 1 :(得分:1)
如果您传递的值不同firstRecord
,batchSize
和recordCount
首先执行firstRecord + batchSize > recordCount
评估(firstRecord + batchSize)
值。
如果firstRecord + batchSize
值大于recordCount
,则会返回recordCount
,否则返回firstRecord + batchSize
值
答案 2 :(得分:0)
基本上,您在getLastRecord函数中使用了三元运算符。
三元运算符:变量x =(表达式)?值为true:如果为false则为值
以下是示例:
public class Test {
public static void main(String args[]){
int a , b;
a = 10;
b = (a == 1) ? 20: 30;
System.out.println( "Value of b is : " + b );
b = (a == 10) ? 20: 30;
System.out.println( "Value of b is : " + b );
}
}
这会产生以下结果:
Value of b is : 30
Value of b is : 20
参考:Tutorial