Devuelve el valor de la operación de asignación en java

Encontré una statement en Java

while ((line = reader.readLine()) != null) { out.append(line); } 

¿Cómo las operaciones de asignación devuelven valor en Java? Como la afirmación que estamos verificando es line=reader.readLine() y lo comparamos con null . Debido a que readLine devolverá la cadena, ¿cómo exactamente estamos comprobando null ?

El operador de asignación en Java devuelve el valor asignado (como lo hace, por ejemplo, en c ). Entonces, aquí, se readLine() , y su valor de retorno se almacenará en line . Ese valor se compara con null , y si es null , el ciclo terminará.

(line = reader.readLine ())! = null

medio

  1. se invoca el método readLine ().
  2. el resultado se asigna a la línea variable,
  3. el nuevo valor de la línea será a prueba contra nulo

tal vez muchas operaciones a la vez …

Las expresiones de asignación se evalúan a su valor de asignación.

 (test = read.readLine()) 

>>

 (test = <>) 

>>

 <> 

reader.readLine() lee y devuelve una línea para ti. Aquí asignó lo que devolvió de esa línea y verifica si la variable de línea es nula o no.