Ajuda, enumerados

3 respostas
P

Alguém me ajuda?

Não percebo o que estou a fazer errado :X

public enum Destino {
	Lisboa, Coimbra, Aveiro, Porto, Braga;
	
	public boolean ultimaEstacao(){
		return this == values()[values().length];
	}
	
	public Destino proxima() {
		Destino[] todasAsEstações = Destino.values();
		if (ordinal() == todasAsEstações.length - 1){
			return this;
		}
		else{
		return todasAsEstações[ordinal() + 1];
		}
	}
	
	public static Destino ultimaEstacaoStatic(){
		Destino[] destinos = values();
		return destinos[destinos.length - 1];
	}
	
	public static void main(String[]args){
		Destino novo = Destino.values()[0];
		novo.proxima();
		System.out.println(novo);
	}
	

}

O que eu queria era meter uma estação, e chamando o método proximo() queria que me devolvesse a proxima estação

3 Respostas

P

Na parte do testar:

Meti um Destino = Lisboa
E queria que devolvesse o próximo Destino

renamed

vc deve fazer assim:

System.out.println(novo.proxima());

O seu próxima nao seta o objeto atual como próxima estação, apenas devolve a próxima estação.

renamed

Vc tmb pode fzer assim:

public static void main(String[]args){
	Destino novo = Destino.values()[0];
	novo = novo.proxima();
	System.out.println(novo);
}

EDIT:

ou melhor ainda:

public static void main(String[]args){
	Destino novo = Destino.Lisboa;
	novo = novo.proxima();
	System.out.println(novo);
}
Criado 8 de março de 2011
Ultima resposta 8 de mar. de 2011
Respostas 3
Participantes 2