Ver Mensaje Individual
  #9 (permalink)  
Antiguo 18/09/2013, 13:26
CRauda
 
Fecha de Ingreso: septiembre-2010
Mensajes: 91
Antigüedad: 13 años, 7 meses
Puntos: 9
Respuesta: Más de un return's?

diego_g_09 Lo que te puse era solo con el fin de ejemplificar, ambas formas son correctas para realizar el return, en el caso de los booleanos es mejor la forma de los 2 return ya que evitas la declaracion de una variable, pero en casos diferentes donde requieres el retorno de variables que no son booleanas te dan el beneficio de poder hacer returns dependiendo de lo que requieras que devuelva, por ejemplo en mi caso tengo estas funciones:

Código Java:
Ver original
  1. private String ejecutaAccion(int accion, String valor,String valor2,String valor3,String Tabla,String Tabla2) throws SQLException{
  2.             String sql = "";
  3.             String valorReturn = null;
  4.             if (accion == 1){
  5.                sql = "SELECT CTIME campo FROM " + Esquema + "." + Tabla + " WHERE CLABRQ IN (select CLABRQ from " + Esquema + "." + Tabla2 + " where cjbcrd='" + valor + "')";
  6.             }
  7.             if(accion == 2){
  8.                 sql = "select ATMPOR campo from " + Esquema2 + "." + Tabla + "  where asplit='" + valor + "'";
  9.             }
  10.             if(accion == 3){
  11.                 sql = "select JESTTM campo from " + Esquema + "." + Tabla + " where JWRKO2= " + valor2 + " and JWRKO1= " + valor;
  12.             }
  13.             if(accion == 4){
  14.                 sql = "select YTMVAL campo from " + Esquema2 + "." + Tabla + " where ysplit ='" + valor + "'";
  15.             }
  16.             try {
  17.                 stmt = as.connection.createStatement();
  18.                 rs = stmt.executeQuery(sql);  
  19.                 while(rs.next()){
  20.                     if (rs.getString("campo") == null || rs.getString("campo").equals("") || rs.getString("campo").equals("null")){
  21.                         return "0";
  22.                     }else{
  23.                         valorReturn = (rs.getString("campo")).toString();
  24.                         if(isNumeric(valorReturn)){
  25.                             if(Integer.parseInt(valorReturn) < 10){
  26.                                 return "0" + valorReturn;
  27.                             }else{
  28.                                 return valorReturn;
  29.                             }
  30.                         }
  31.                     }
  32.                 }
  33.             } catch (SQLException e) {
  34.                 e.printStackTrace();
  35.                 return "ND";
  36.             }  
  37.         }
  38.  
  39.     public boolean isNumeric(String input) {
  40.       try {
  41.         Integer.parseInt(input);
  42.         return true;
  43.       }
  44.       catch (NumberFormatException e) {
  45.         //e.printStackTrace();
  46.         return false;
  47.       }
  48.     }

De no ser por los multiples return tendria que hacer muchas mas cosas para poder obtener lo que necesito segun sea el caso. Espero que con esto se te aclare mejor tu duda. Saludos.