
Hoy vamos a dedicarle la entrada a los objetos de clase Enumerations, dichos objetos tienen como finalidad organizar las constantes , expliquemoslo con un ejemplo :
Nos Creamos nuestro Objeto Enum tiene como valores constantes A,B,C y D que son los niveles de acceso
package eticom.nums;
/**
* @author Administrador
*
*/
public enum NivelDeAcceso {
A, B, C, D }
-------------------------------------------------------------------------------------------
Nos creamos la clase Acceso que tendra como atributo niveldeaceso un objeto de mi enums que creamos con anterioridad y redifiniremos el metodo equals para poder comparar el objeto(si tienes dudas de como se hace mas abajo esta la explicación)
package eticom;
import eticom.nums.NivelDeAcceso;
/**
* @author Administrador
*
*/
public class Acceso {
public NivelDeAcceso niveldeacceso;
/**
* Constructor por defecto
*/
public Acceso() {
}
/**
* Constructor que crea el objeto pasandole un objeto de clase enum
*
* @param nivelParametro
* Mandatory
*/
public Acceso(NivelDeAcceso nivelParametro) {
niveldeacceso = nivelParametro;
}
/**
* Redefinir Metodo Equals
*/
public boolean equals(Object a) {
boolean respuesta = false;
Acceso u = (Acceso) a;
if (u.niveldeacceso.equals(this.niveldeacceso)) {
respuesta = true;
};
return respuesta;
}
}
--------------------------------------------------------------------------------
Bien ahora nos crearemos la prueba y veremos la utilidad a todo esto, haremos una prueba que comparara un objeto de clase Acceso con otro de clase Acceso si quieres comparar Acceso literalmente y por algun casual te equivocas al escribir el valor ejemplo:
String admin = new String("Acceso A");
String usuario = new String("acceso A");
assert(admin.equals(usuario)):"No son iguales"
Dara fallo ya que uno empieza en mayusculas y otro en minuscula pero si nos creamos un enums estamos obligados a escoger un valor constante si no no compilara ,bien despues de esta parrafada hagamos la prueba:
/**
*
*/
package eticom;
/**
* @author Administrador
*
*/
import org.testng.annotations.Test;
import eticom.nums.NivelDeAcceso;
@Test
public class AccesoTest {
/**
* Prueba de la clase Acceso
*/
public void pruebaAcceso() {
Acceso admin = new Acceso(NivelDeAcceso.A);
Acceso usuario = new Acceso(NivelDeAcceso.B);
Acceso usuario2 = new Acceso(NivelDeAcceso.A);
assert (admin.equals(usuario2)) : "No tienen el mismo acceso";
assert (!admin.equals(usuario)) : "tienen el mismo acceso";
}
}
No hay comentarios:
Publicar un comentario