Foros del Web » Programación para mayores de 30 ;) » Java »

Tipo de datos enumeraod ¿Como se puede hacer?

Estas en el tema de Tipo de datos enumeraod ¿Como se puede hacer? en el foro de Java en Foros del Web. Hola Necesito crear un tipo de dato enumerado y, por lo que he mirado en libros, no existe en Java. ¿Como podría crearse? Por ejemplo: ...
  #1 (permalink)  
Antiguo 23/05/2003, 05:50
Avatar de javimartinez  
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 21 años, 1 mes
Puntos: 1
Pregunta Tipo de datos enumeraod ¿Como se puede hacer?

Hola

Necesito crear un tipo de dato enumerado y, por lo que he mirado en libros, no existe en Java. ¿Como podría crearse?

Por ejemplo: crear un string que solo pueda tomar los valores de los días de la semana (lunes, martes ...).

Un saludo
__________________
Javi Martínez

Web: Acertijolandia Blog: A Entretenerse
  #2 (permalink)  
Antiguo 23/05/2003, 09:30
Avatar de kripton  
Fecha de Ingreso: diciembre-2002
Ubicación: Zaragoza
Mensajes: 296
Antigüedad: 21 años, 4 meses
Puntos: 0
Hola javimartinez!!!

Puedes hacer una clase que controle la condición que tu quieras en el constructor y si no la cumple pues le tiras una excepcion, un ejemplo prodia ser el siguiente:

Código PHP:
import java.util.TreeSet;

public class 
DiaDeLaSemana {
    
String diaDeLaSemana;
    
TreeSet valoresValidos = new TreeSet();

    public 
DiaDeLaSemana(String diaDeLaSemanathrows IllegalArgumentException{
        
cargarValoresValidos();
        if(!
valoresValidos.contains(diaDeLaSemana.toUpperCase())){
            throw new 
IllegalArgumentException("Argumento NO valido: " diaDeLaSemana);
        }
        
this.diaDeLaSemana diaDeLaSemana;
    }

    private 
void cargarValoresValidos() {
        
valoresValidos.add("LUNES");
        
valoresValidos.add("MARTES");
        
valoresValidos.add("MIERCOLES");
        
valoresValidos.add("JUEVES");
        
valoresValidos.add("VIERNES");
        
valoresValidos.add("SABADO");
        
valoresValidos.add("DOMINGO");
    }

    public 
String getDiaDeLaSemana() {
        return 
diaDeLaSemana;
    }

    public static 
void main(String[] args) {
        try{
            new 
DiaDeLaSemana("Lunes"); // OK
            
new DiaDeLaSemana("Miercoles"); // OK
            
new DiaDeLaSemana("MMM"); // Salta la excepcion
        
}catch (IllegalArgumentException e){
            
System.out.println("DiaDeLaSemana.main");
            
e.printStackTrace();

        }
    }

Espero te sirva,
un saludo,
kripton
  #3 (permalink)  
Antiguo 23/05/2003, 13:14
Avatar de javimartinez  
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 21 años, 1 mes
Puntos: 1
De acuerdo

Hola Kripton

Muchas gracias por tu mensaje, no es que me sirva para implementar lo que quiero, si no que es justamente eso lo que quiero implementar, una clase en la que se haye encapsulada un tipo de datos de los denominados "enumerados" en UML.

Un saludo
__________________
Javi Martínez

Web: Acertijolandia Blog: A Entretenerse
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:09.