Conversão constantes - string

6 respostas
renatosilva

Curiosidade: vocês já vivenciaram situações em que precisaram fazer este tipo de conversão né? Na verdade estou falando de enumerados, cujas constantes são os seus (trabalhosos) substitutos. Vejam:

DiaDaSemana = (Segunda, Terca, Quarta, Quinta, Sexta)

No Java…

DiaDaSemana.Segunda = 0
DiaDaSemana.Terca = 1
DiaDaSemana.Quarta = 2
DiaDaSemana.Quinta = 3
DiaDaSemana.Sexta = 4
// Ofegando...

Uma conversão de exemplo:

funcao diaDaSemana(texto)
    se texto = "Segunda" entao
        retorna Segunda
    senao se Texto = "Terca" entao...
    // trocentos if else...
fim

funcao texto(diaDaSemana)
    // menos esquisito que com if
    caso diaDaSemana seja
        Segunda: retorne "Segunda"
        Terca: retorne "Terça"
        // etc...
    fim
fim

Então, é assim que vocês fazem? Se não, como fazem?

6 Respostas

T

No Java 5.0 isso já vem prontinho :wink: Uma vez postei isto aqui no forum.java.sun.com.

import java.awt.Color;

class Test205 {
    enum Colors { RED, GREEN, BLUE };

    public static void main(String[] args) {
        Color[] q = new Color[3];
        System.out.println (Colors.RED); // prints RED, not 0
        System.out.println (Colors.RED.ordinal()); // prints 0
        q [Colors.RED.ordinal()] = new Color (255,0,0);
        q [Colors.GREEN.ordinal()] = new Color (0,255,0);
        q [Colors.BLUE.ordinal()] = new Color (0,0,255);
    }
}

Mas acho que seu problema não é usar o Java 5.0 :stuck_out_tongue:

renatosilva

Explica melhor isso ae thingol heheheh. O enum num é uma definição de tipo?

Na verdade não é problema. É que estou envolvido com isso num programinha, mas não em Java, e tava pensando, como o Java num tem enumerados e conjuntos (estou falando em délphico), usando como substitutos as constantes (o que pessoalmente acho tosco), queria saber como vocês trabalham a conversão, se é usando esses if’s ae.

Bom, podemos falar sob duas perspectivas, antes do Tiger e com a chegada do mesmo.

_fs
Assim não fica melhor?
enum Colors
{
	RED( Color.RED ), GREEN( Color.GREEN ), BLUE( Color.BLUE );
	
	private Color color;
	private Colors( Color color )
	{
		this.color = color;
	}
	
	public Color getColor()
	{
		return color;
	}
}
renatosilva

Que doido LIPE esse enum aí. Num é mais fácil:

TColor = (clRed, clGreen, clBlue) ?

cv1

Nao eh pq tem menos codigo que eh “mais facil”, Renato. E pelo amor de Zahl, sera que vc vai parar de falar de Delphi algum dia?

renatosilva

???

Criado 10 de junho de 2005
Ultima resposta 10 de jun. de 2005
Respostas 6
Participantes 4