Conversão constantes - string

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?

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:

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.

Assim não fica melhor?

[code]
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;
}

}[/code]

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

TColor = (clRed, clGreen, clBlue) ?

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?

???