基本Java代码解释

时间:2015-01-03 09:48:12

标签: java

有点可耻地问,因为经过多年的Java编码,我从来没有使用过这种编码方式,而且我似乎每次都会遇到它,但这次请我们一劳永逸地学习它。
以下是代码段:

private int batchSize;
private int firstRecord;
private int recordCount;

public int getLastRecord() {

    return firstRecord + batchSize > recordCount ? recordCount : firstRecord + batchSize;
}

任何人都可以解释一下这个方法将针对参数的不同值返回什么,或者指向我可以向我解释的教程。非常感谢。

3 个答案:

答案 0 :(得分:3)

这是一个三元表达式(在Java中,它被官方称为Conditional Operator ? :),它意味着

if (firstRecord + batchSize > recordCount) {
   return recordCount;
} else {
   return firstRecord + batchSize;
}

答案 1 :(得分:1)

如果您传递的值不同firstRecordbatchSizerecordCount

首先执行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