oi. e possivel criar um enum que ao chamar tem funcao de metodo tambem por exemplo ao chamar o EnumRevista.DIRETORIO_XML caso o diretorio nao existisse ja criaria…
tentei mais sem sucesso
public enum EnumRevista{
DIRETORIO.XML {
@Override public void verificarSeODiretorioExisteSeNaoExistirIraCriar() {
new File("c:/dir/revista");
}
};
Até tem como criar um construtor para enum (que seria mais ou menos que você quer: um método para rodar na criação).
Mas isso não seria uma boa idéia.
Quando você lê uma enum, você quer apenas ler, ninguém espera que ler o valor de enum saia criando coisas.
Evite colocar coisas escondidas assim no seu código. Isso dificulta a manutenção depois.
Coloque essas validações numa classe separada (especialmente quando tem criação de arquivos envolvida) e defina um lugar na aplicação para esse setup rodar.
Edit: corrigindo informação.
Você pode criar como método uai… Você pode criar métodos normalmente…
[quote=mariazinhahappy]oi. e possivel criar um enum que ao chamar tem funcao de metodo tambem por exemplo ao chamar o EnumRevista.DIRETORIO_XML caso o diretorio nao existisse ja criaria…
tentei mais sem sucesso
public enum EnumRevista{
DIRETORIO.XML {
@Override public void verificarSeODiretorioExisteSeNaoExistirIraCriar() {
new File("c:/dir/revista");
}
};
[/quote]
Eu sei que não têm nada a ver. mas esse método realmente se chama verificarSeODiretorioExisteSeNaoExistirIraCriar , prq se for acho melhor vc rever alguns padrões de nomes para criação de método,talvez apenas criarDiretorio e um comentario do que ele faz já ajuda muito.
[quote=mariazinhahappy]oi. e possivel criar um enum que ao chamar tem funcao de metodo tambem por exemplo ao chamar o EnumRevista.DIRETORIO_XML caso o diretorio nao existisse ja criaria…
tentei mais sem sucesso
public enum EnumRevista{
DIRETORIO.XML {
@Override public void verificarSeODiretorioExisteSeNaoExistirIraCriar() {
new File("c:/dir/revista");
}
};
[/quote]
O problema não é enum, o problema é entender como funciona File. Vc tem que verificar se existe e mandar criar se não existe. Não é mágico. O file só aponta o local do arquvio e não o arquivo em si.
É sim possível criar construtores para enum, mas eles têm que ser private.
O codigo seria assim
[code]public enum EnumRevista{
DIRETORIO.XML (new File(“c:/dir/revista”));
private EnumRevista(File file){
if (!file.exists()){
file.mkdirs();
}
};
}
[/code]
Contudo é uma péssima prática usar caminhos explícitos no código , porque por exemplo se rodar no linux quebra tudo.
Já falamos disto aqui no guj recentemente. Não coloque configuração de caminho como constante no codigo. O que significa que usar enum para isso tb não é boa ideia.