Tengo una clase Cerradura con los atributos claveDeApertura y cantidadDeFallosConsecutivosQueLaBloquean y el método abrir() en el cual tengo que verificar si se pasó la clave correcta, si no llegó a la cantidad de fallos consecutivos y si la cerradura no está bloqueada. Por defecto el estado de la cerradura y de bloqueo es false (la cerradura está cerrada y no está bloqueada). Cuando paso una clave correcta, por alguna razón el if me da falso al revisar la clave pasada con la clave del objeto pero cuando hago el debug resulta que el if deberia de ser verdadero porque cumple con todo lo solicitado y recibe bien el dato y lo mas gracioso es que antes funcionaba y de golpe dejó de funcionar jaja. Si pongo una clave incorrecta funciona bien pero me llama la atención eso.
public Boolean abrir(Integer clave)
{
if((clave == claveDeApertura) && (cantidadFallos < cantidadDeFallosConsecutivosQueLaBloquean) && (!estadoBloqueo))
{
estadoCerradura = true;
cantidadFallos = 0;
return true;
}
cantidadFallos++;
if(cantidadFallos == cantidadDeFallosConsecutivosQueLaBloquean)
{
estadoBloqueo = true;
estadoCerradura = false;
}
return false;
}
este es el método abrir()