Bom dia, eu estou com um pequeno problema declarando uma class do tipo “enum”. Inicialmente, pensei que poderia ser da versão do java que estou usando no meu pc, ou até da versão do eclipse, mas tenho tudo atualizado. Vou postar um troço de código para exemplificar o meu problema.
Neste pequeno troço, o tipo “enum” aparece sublinhado e dá o seguinte erro: “Syntax error on token “enum”, interface expected”
Já tentei muitas soluções mas nada resultou ainda.
Cara, você tinha o seu workspace mal configurado.
Em Workspace Settings você teria de alterar as definições do compilador para ler linguagem superior à versão 1.4 do java.
Valeu.
Veronicaaa
Olá
Qual a versão do Java e do Eclipse você está utilizando? E esse é todo o conteúdo do seu arquivo?
W
windsofhell
Ate onde eu sei vc nao pode declarar classe desse jeito.
Pra mim seria algo do tipo :
public class CategoriaDeAuxiliar
e o que sao esses ASSISTENTE, ADMINISTRATIVO, TECNICO.
membros da classe ?
Se for vc tem que declarar eles com o tipo por exemplo uma classe Usuario:
Dica: da próxima vez abra o tópico com um nome mais específico como: “Tenho uma dúvida com enums” ou “Tento usar enum mas recebo Syntax error on token”.
Isso facilita para na hora de decidirmos se sabemos ou não responder sua dúvida.
ViniGodoy
Mais fácil do que polimorfismo, esse código pode ser refatorado levando em consideração que o enum suporta propriedades.
O nome do OS é uma ótima propriedade.
Refatorando:
importjava.util.*;enumOperatingSystems{windows("Windows"),unix("Unix",linux("Linux"),macintosh("Mac");privateStringname;privateOperatingSystems(Stringname){this.name=name;}publicStringgetOsName(){returnname;}}publicclassEnumExample1{publicstaticvoidmain(Stringargs[]){OperatingSystemsos;os=OperatingSystems.windows;if(os!=null){System.out.println("You chose "+os.getOsName()+"!");}else{System.out.println("I don't know your OS.");}}}
A grande vantagem é que, se quisermos mudar o nome de Mac para Macintosh, faremos só no enum, sem ter que procurar todos os cases que estavam espalhados pelo código.
Além disso, se resolvermos adicionar outro SO no futuro, já saberemos que precisamos dar um nome descrição para ele. ;)
J
Joao_Nunes
ViniGodoy:
Dica: da próxima vez abra o tópico com um nome mais específico como: “Tenho uma dúvida com enums” ou “Tento usar enum mas recebo Syntax error on token”.
Isso facilita para na hora de decidirmos se sabemos ou não responder sua dúvida. ;)
Você tem razão, peço desculpa, nem lembrei desse pormenor.