Estou com um problema, estou tentando comparar 2 Strings e da erro quando uso equals();
public boolean GolpeAnterior(String golpe, String golpeanterior) {
String a = golpeanterior;
String b = golpe;
if (a.equals(b)){
System.out.println("metodo true");
return true;
}else{
System.out.println("metodo false");
return false;
}
}
O erro:
Exception in thread "Thread-0" java.lang.NullPointerException
at enviaThread.GolpeAnterior(enviaThread.java:138)
at enviaThread.validaGolpe(enviaThread.java:58)
at enviaThread.Golpe(enviaThread.java:34)
at enviaThread.run(enviaThread.java:19)
at java.lang.Thread.run(Unknown Source)
Estou com um problema, estou tentando comparar 2 Strings e da erro quando uso equals();
public boolean GolpeAnterior(String golpe, String golpeanterior) {
String a = golpeanterior;
String b = golpe;
if (a.equals(b)){
System.out.println("metodo true");
return true;
}else{
System.out.println("metodo false");
return false;
}
}
O erro:
Exception in thread "Thread-0" java.lang.NullPointerException
at enviaThread.GolpeAnterior(enviaThread.java:138)
at enviaThread.validaGolpe(enviaThread.java:58)
at enviaThread.Golpe(enviaThread.java:34)
at enviaThread.run(enviaThread.java:19)
at java.lang.Thread.run(Unknown Source)
[/quote]
Bom eu não sei onde tá o erro, mas pq vc não compara diretamente as strings?
public boolean GolpeAnterior(String golpe, String golpeanterior) {
if (golpe.equals(goldpeanterior)){
System.out.println("metodo true");
return true;
}else{
System.out.println("metodo false");
return false;
}
}
Eu poderia dps fazer x=y; ?Assim x não seria mais “AB” e sim “BC”, poderia?[/quote]
Poderia. x seria uma referência para a String “AB”.
Sobre o primeiro erro.
Você pode, como falou o colega aí acima, usar somente o equals. Fica mais simples. Mas se quiser fazer com o método, eu acredito que o erro possa estar na chamada.
Quem sabe você está chamando ele (o método) usando um variável de referência não instanciada (i.e., nula - o que ocasiona a NullPointerException). Se você passar o trecho de código onde você chama o método pode ficar mais fácil de verificar aonde pode estar o problema.
Bel, para comparar Strings o ideal é o método equals(). Strings não são primitivos, elas são Objetos portanto elas são um endereço de memória, quando vc faz x=y vc atribui a x o endereço de memória de Y, e faz com que o Garbage Collector mate o endereço X. Fique atenta a isso pois troca de referencia custa memória e processamento.