Opções restritas no preenchimento de parâmetros de um método

2 respostas
juarezna

Olá a todos!!
Gostaria de restringir as opções de preenchimento do parâmetro de um método.

Por exemplo:

Entrar somente com os valores dd/MM/yyyy e ddMMyyyy no parâmetro FormatoData. Um drop-down com os valores para selecionar seria o ideal.

public String FormataData(String FormatoData){





}

Estou utilizando enum, mas, gostaria de utilizar algum outro recurso mais conveniente para fazer isso.

[]s

2 Respostas

T

No seu caso, o mais recomendado é de fato um enum. Exemplo:

import java.util.*;

 enum FormatoData  {  
     COM_BARRAS("dd/MM/yyyy"),  
     SEM_BARRAS("ddMMyyyy");
   
     private final String value;  
   
     FormatoData(String value) {  
         this.value = value;  
     }  
   
     public String getValue() {  
         return value;  
     }
     private static final Map<String, FormatoData> value2enum = new HashMap<String, FormatoData>();
     static {
         for (FormatoData v : values()) {
             value2enum.put (v.getValue(), v);
         }
     }  
     public static FormatoData getInstance(String v) {
         return value2enum.get (v);
     }
 }  

class TestEnum {
    public static void main(String[] args) {
        FormatoData etf = FormatoData.COM_BARRAS;
        FormatoData etf2 = FormatoData.getInstance ("dd/MM/yyyy");
        FormatoData etf3 = Enum.valueOf (FormatoData.class, "SEM_BARRAS");
        System.out.println (etf); // imprime COM_BARRAS
        System.out.println (etf.getValue()); // imprime "dd/MM/yyyy"
        System.out.println (etf2); // imprime COM_BARRAS
        System.out.println (etf2.getValue()); // imprime "dd/MM/yyyy"
        System.out.println (etf3); // imprime SEM_BARRAS
        System.out.println (etf3.getValue()); // imprime "ddMMyyyy"
    }    
}
juarezna

thingol:

enum FormatoData { COM_BARRAS("dd/MM/yyyy"), SEM_BARRAS("ddMMyyyy"); ... ...

Ok Thingol, obrigado.

O enum é um recurso bacana, pena que não faz coisas do tipo:

dd/MM/yyyy(dd/MM/yyyy)

ou

#,##0.00("#,##0.00")
Criado 7 de maio de 2009
Ultima resposta 8 de mai. de 2009
Respostas 2
Participantes 2