Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Error de Login

Cordial saludo, porque mi codigo arroja error de login?

package bytebank_heredado;

public class SistemaInterno {

public String clave = "AluraCursosOnline";

public boolean autentica(Autenticable gerente) {
    boolean puedeInciarSesion = gerente.iniciarSesion(clave);
    if (puedeInciarSesion) {
        System.out.println("Login exitoso");
        return true;
    }else {
        System.out.println("Login error");
    }
    return false;
}

}

package bytebank_heredado;

public class Cliente implements Autenticable {

private String nombre;
private String documento;
private String telefono;


private String clave;


//Clic en source Generate Getter and Setter

public String getNombre() {
    return nombre;
}
public void setNombre(String nombre) {
    this.nombre = nombre;
}
public String getDocumento() {
    return documento;
}
public void setDocumento(String documento) {
    this.documento = documento;
}
public String getTelefono() {
    return telefono;
}
public void setTelefono(String telefono) {
    this.telefono = telefono;
}

@Override
public boolean iniciarSesion(String clave) {
    // TODO Auto-generated method stub
    if (this.clave == clave) {
        return true;
    }
    return false;
}

@Override
public void setClave(String clave) {
    // TODO Auto-generated method stub
    this.clave = clave;
    
}

}

1 respuesta

¡Hola Richard!

Gracias por compartir tu código. Parece que estás teniendo un error de login en tu programa. Al revisar tu código, noté que estás utilizando el operador de comparación "==" en el método iniciarSesion de la clase Cliente para comparar las claves.

En Java, el operador "==" se utiliza para comparar referencias de objetos, no para comparar cadenas de texto. Para comparar cadenas de texto, debes utilizar el método equals.

Te sugiero que modifiques el método iniciarSesion en la clase Cliente de la siguiente manera:

@Override
public boolean iniciarSesion(String clave) {
    if (this.clave.equals(clave)) {
        return true;
    }
    return false;
}

Al utilizar el método equals, estás comparando el contenido de las cadenas de texto y no las referencias de los objetos.

Espero que esta solución te ayude a resolver tu error de login. Si tienes alguna otra pregunta, no dudes en hacerla.

¡Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios