Hola amigos
En java no se pueden hacer varios returns verdad? Dependiendo de un if por ejemplo
public boolean conectar()
{
if(tal cosa)
return true;
else
return false;
}
| |||
Varios returns Hola amigos En java no se pueden hacer varios returns verdad? Dependiendo de un if por ejemplo public boolean conectar() { if(tal cosa) return true; else return false; } |
| |||
No se que error de compilación te da, pero seguro que es otro por que esa restricción no existe. Era una broma de todas formas . Si pones el mensaje de error del compilador, te podremos decir cual es la causa real, aunque en estos casos lo más probable es que haya un "camino de ejecución" en el que no aparezca ningún return, y eso si que el compilador no deja hacerlo. S! |
| |||
Si tengo el metodo: public boolean conectar() { if(lo que sea) return true; else return false; }me marca esta linea y me dice "el metodo no devuelve ningun valor" lo que hice fue hacerlo asi aunque segun lo que me decis debería funcionar public boolean conectar() { int retorno = 0; if(lo que sea) retorno = 1; else hago todo lo que tengo que hacer return retorno } La idea era poder usar el metodo en un if asi: if(conectar()) |
| ||||
lo que pasa es que el compilador espera que regreses un boolean, al poner el return dentro de un if, el compilador lo ignora, por que es una condicion, osea, puede suceder o no... entonces es por eso que te marca el error... si, ya lo habia notado, pienso que no deberia, perooooo buenooooo nuestros amigos de SUN asi lo diseñaron jejejejjeje have funnnnnnn
__________________ Curso de Angular JS - Haremos una app de principio a fin |
| ||||
Cita: puedes hacer algo asi:Código PHP: have funnnnnn
__________________ Curso de Angular JS - Haremos una app de principio a fin |
| |||
Código:
Compilan perfectamente. public boolean conectar() { boolean algunSupuestoValor = ...; if(algunSupuestoValor) { return true; } else { return false; } } o public boolean conectar() { boolean algunSupuestoValor = ...; if(algunSupuestoValor) return true; else return false; } |
| |||
Bueno me parece interesante tu manera de hacerlo Stock. La voy a adoptar gracias. Según lo que dices GreenEyed tambien debería funcionar en un try verdad? Esto para salir nada más ya de la duda. |
| |||
Depende, como te he dicho TODOS los caminos de ejecución deben tener un return, asi que si tienes un try/catch y al final de cada catch no pones un return, o en su defecto lo pones despues del bloque try/catch, entonces no has cubierto todas las posibilidades y por eso da error. Lo de que al ser una instruccion "if" ignore el return de dentro y de error no es cierto, lo que pasa es que tienes que poner otro en el camino de ejecucion si la condicion no se cumple. Sea en el else o después de cerrar el bloque if/else. La idea básica es que pase lo que pase, tu metodo ha de acabar en un return (o lanzar una excepcion). Si pones varios return ocurren estas cosas y es por eso que lo más recomendable es utilizar una variable local y un solo return al final. S! |
| |||
Cita: eso depende de que tan ordenado este el código que tan claro sea el nombre de los metodos, no de la sintaxis que se usesaludos, |
| |||
Si tienes una operación en la que para devolver el boolean tienes que comprobar un valor en la BDD o leer un fichero o abrir un socket y leer un valor, ya me dirás como haces para meter todo eso dentro de la clausula "return". A eso me refiero . |
| |||
"meteria todo eso" de la misma forma que tengo que meterlo en la sentencia if. mi critica es a la estructura Código PHP: Código PHP: saludos. |
| |||
Ah, si te referías a eso, pues es igual, como tú dices. Yo es que la linea esa me la había tomado como un ejemplo de "hacer varios return" en un método, no como nada serio. Si es solo para devolver true o false, entonces el return como tu dices es más corto, pero yo estaba pensando en cosas más complejas que un sólo if/else para devolver un booleano y pense que tambien te referías a eso. No nos hemos entendido . S! |