Convertendo o valor de uma String para um objeto

5 respostas
DoomGuy

Olá Senhores. Como faço pra pegar o valor de uma String e converte-la em um objeto? Desse modo:

String i = arm.next();
//arm = referencia a um Scanner(System.in)
		
s.localizaArma(i);
//este método tem como argumento um objeto

Desde já agradeço.

5 Respostas

ViniGodoy

Oi,

Quando postar códigos, por favor, use essas dicas:

Não existe conversão de String para um objeto de outra classe qualquer. Verifique se no objeto que o método pede tem algum construtor que aceita a String, ou se existe alguma classe DAO que carregue o objeto em questão baseado na String.

F

Olá!

Realmente, não existe conversão de uma String para um objeto. Poste um pouco mais do código para que possamos entender melhor.

DoomGuy

Obrigado pela dica @ViniGodoy. Já coloquei a formatação correta.

Os códigos:

String i = arm.next();  
//arm = referencia a um Scanner(System.in)  
          
s.localizaArma(i);  
//este método tem como argumento um objeto
public void localizaArma(armas x){
		
		System.out.println(locationOfGuns.get(x.nome));
	}

}

A idéia geral é a seguinte: O usuário digita um valor, no primeiro código. A classe utiliza o HashMaps para realizar a busca. Como devo colocar o nome do que ele deve procurar? Pensei que, colocava uma String, e ele buscaria o nome da classe por esse String.

ViniGodoy

Provavelmente vc tem algum mapa assim:

Map<String, Arma> armas = new HashMap<String, Arma>();

Que associa a arma ao seu nome. Por exemplo:

armas.put("Pistola", magnum45);

Então, se o usuário digitar um nome, basta fazer a busca no map pelo nome:

Scanner in = new Scanner(System.in); System.out.println("Entre com o nome da arma:"); String nome = in.nextLine(); Arma arma = armas.get(nome); System.out.println("A " + arma.getNome() + " tem calibre " + arma.getCalibre() + ".");

DoomGuy

Nossa, vdd… Não precisava ter passado um argumento “arma” pro método… uma String já ervia. Vlww aeee!!!

Criado 23 de agosto de 2011
Ultima resposta 23 de ago. de 2011
Respostas 5
Participantes 3