Este dilema se puede resolver de variadas maneras, sin embargo te compartimos la solución más completa en nuestra opinión.
Solución:
Necesitamos ver más de su código, pero adivinando un poco, creo que algo como esto funcionaría:
ReturnMessage returned;
while (!(returned = myObject.myMethod()).finished)
if (!returned.finished)
Un bucle while verifica un condicional. Aquí hay otro ejemplo que puede ser útil:
public class test
public static void main(String[] args)
String line;
while((line = readFromFile())!=null)
//do something with var 'line'
System.out.println(line);
break;
static String readFromFile()
return "test string";
Si bien es aceptable en PHP, supongo (no codifico en PHP), se considera una forma extremadamente mala para hacer una tarea dentro de un condicional en Java. (Esto se debe a que es propenso a errores y muy difícil de detectar, la diferencia está entre = y == en medio de una gran cantidad de código. Esta fue una elección deliberada basada en años de experiencia con C y C++).
Tal como está, no puedo seguir tu código. Dices “returnMessage tiene 2 booleanos y una cadena”, pero la prueba, según tengo entendido en PHP, es myObject->myMethod()->finished != null
y returned
se establece en el valor de finished
pero luego vas y pruebas $returned -> finished
que es lo mismo que myObject->myMethod()->finished->finished
. Lo siento si no entiendo bien la sintaxis de PHP.
La recomendación general en Java sería más similar a:
ReturnMessage returned = myObject.myMethod().getFinished();
while (returned != null)
...
returned = myObject.myMethod().getFinished(); // or did you mean myObject.myMethod();
if (!returned.finished) // or, better: if (!returned.isFinished())
...
Si entendí mal el PHP, házmelo saber y arreglaré el código Java para que coincida.
Finalizando este artículo puedes encontrar las observaciones de otros programadores, tú todavía eres capaz insertar el tuyo si te gusta.