用于 ?作为回报

Dan*_*iel 1 java return

在Java的String.class中,我看到了这一点

public String substring(int beginIndex, int endIndex){
   //if statements
   return ((beginIndex == 0) && (endIndex == count)) ? this:
     new String (offset + beginIndex, endIndex - beginIndex, value);
}
Run Code Online (Sandbox Code Playgroud)

是什么 '?' 在做什么?当我们讨论这个主题时,是否有人可以解释在返回语句中使用'new String'发生的事情?这是某种有条件的吗?

Tom*_*icz 5

它是一个三元运算符,它相当于:

if((beginIndex == 0) && (endIndex == count)) {
  return this;
} else { 
  return new String (offset + beginIndex, endIndex - beginIndex, value);
}
Run Code Online (Sandbox Code Playgroud)