Problemas na hora de inserir string

Bom pessoal, pra quem não sabe, eu sou iniciante no Java, e to tendo um outro problema. A classe “Funcionarios” tem o “Demite” que vai esr especificado abaixo:

[code]boolean demite(String decisao) {

		if(decisao=="S"){
			return false;				
		}
		else{
			return true;
		}[/code]

Simples assim

Agora tem a outra classe, que testa essa função, e tá assim:

System.out.println("Deseja demitir o empregado?(S/N)"); String decisao= entrada.nextLine(); if (empregado.demite(decisao)==false){ System.out.println("Empregado mantido."); } else{ System.out.println("Você está demitido!!"); }

Porém, quando eu executo, acontece isso:

“Deseja demitir o empregado?(S/N)
Você está demitido!!”
(sendo que eu não digitei nada)

Qual é meu erro? Valeu!

Strings não usam o operador == por serem objetos, e não tipo primitivo (int, double, char, etc.)
como seu método é S/N, recomendo usar o tipo char, mas se quiser usar String, o que muda é o seguinte:

if (decisao.equals("S")) {

edit:
também tente usar o operador lógico NÃO invés de testes desnecessários:

if (! empregado.demite(decisao)) {

Por acaso você usa comandos que não sejam nextLine() no seu Scanner?

Pq outros comandos costumam a deixar lixo, e fazer o nextLine() parar de funcionar. Use apenas nextLine() ao ler dados do console

Também na linha de evitar ifs desnecessários, vc pode fazer:

boolean demite(String decisao) { return decisao.equalsIgnoreCase("S"); }

Como esse método retorna um boolean, você faz a função retornar o seu resultado.
O ignoreCase é só para não diferenciar entre maiúsculas e minúsculas.

Valeu pessoal, mas já encontrei o erro. Estava na leitura da string mesmo, e estava nextLine(), como o amigo disse. Porém, só funcionou quando eu puz next();. Aí funfou numa boa. Obrigado.