Impossivel comutar em um valor do tipo String

Boa noite, bom o erro que da na linha so switch e ete qu especifiquei no tópico que diz: Impossivel comutar em um valor do tipo String. Apenas valores int ou constantes são permitidos.
abaixo código que estava mechendo:

[code] String tecnologia = “java”;

	switch(tecnologia){
	case "java":
	case "c++":
	case "c#":
		System.out.println("Linguagem de Programação ");
		break;
	case "postgre":
	case "MySQL":
	case "Oracle":
		System.out.println("Banco de Dados ");
		break;
	default:
		System.out.println("Tecnologia Desconhecida ");
	}
}[/code]

Porque ocorre isso, se no exemplo que estou vendo seguindo a pessoa faz dessa mesma forma que sigo e não dá erros ?

1 segundo de pesquisa + 0,14 segundos da resposta do servidor do google:

Cara,
Parece que o Java 1.7 já inclui a possibilidade de comparações com String no switch.

Verifique qual a versão do java que vc está utilizando…
No terminal ou prompt, digite “java -version”
As versões inferiores a 1.7 não permitem…

BrunoFurtado versão do java aqui é 1.6.

carlos.e.a vi o pessoal falando de Enum, como utilizar ele, seria assim

Enum<Enum<E>> tecnologia = "java";

Cara,

Qual o objetivo de utilizar o switch? Pq não utiliza else if?

A respeito do enum, vc pode segui essa pagina da oracle com um tutorial.
http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

Ou essa:

http://www.tiexpert.net/programacao/java/enum.php

Qual objetivo bom BrunoFurtado e um curso da xti que o brother Fexx me indicou, e eu estava seguindo e la mostra como se fazer com case, masi eu poderia fazer com if else sim, no caso valeu porque mais uma que vi que não dá para usar string com switch at´a versao 1.7, e vi mais uma que ate então nao tinha visto que e o enum.
grato pelas respostas

Bem explicado o tutorial Fexx sobre enum, foi bom saber um pouco sobre enum, mais aqui vendo que o Ricardo fala na aula foge um pouco do que estava falando e fazendo, mais foi bom fico grato.

vi este exemplo: http://www.tiexpert.net/programacao/java/enum.php e tambem vi que fala que o enumnão temcomo instanciar.

[quote=olivercld]BrunoFurtado versão do java aqui é 1.6.

carlos.e.a vi o pessoal falando de Enum, como utilizar ele, seria assim

Enum<Enum<E>> tecnologia = "java";

É voce pode declarar uma classe interna enum. Se for so pra fazer um switch nao acho que va valer a pena. Nesse caso seria melhor usar um if mesmo. O enum nesse caso serviria mesmo só pra questao de legibilidade do codigo.

Conhecimento nunca é demais xD

Voce vai criar um ENUM ?,
enquanto nao usa JAVA7 faz esse trem usando int usando aquele menuzinho antigo do 1 - java | 2 - C# e assim por diante. resolve bem o seu problema.

[quote]É voce pode declarar uma classe interna enum. Se for so pra fazer um switch nao acho que va valer a pena. Nesse caso seria melhor usar um if mesmo. O enum nesse caso serviria mesmo só pra questao de legibilidade do codigo.[/quote] ok entendido carlos.e.a .

[quote]Conhecimento nunca é demais xD[/quote] concordo contigo Fexx vc é fera.

[quote]Voce vai criar um ENUM ?,
enquanto nao usa JAVA7 faz esse trem usando int usando aquele menuzinho antigo do 1 - java | 2 - C# e assim por diante. resolve bem o seu problema.
[/quote] foi o que resolvi fazer Sr. marcelohd02.

Obrigado gente até breve.