[Resolvido]Sink a DotCom não compila, e não compreendo o erro

2 respostas
L

O que tem de errado aqui? não compreendo o por que.
Existe algum guia algum modo de compreender melhor os erros do compilador? as vezes fica muito subjetivo o erro.

import java.util.ArrayList;

	public class DotCom  {
		private ArrayList<String> locationCells;

		public void setLocationCells(ArrayList<String> loc)  {
			locationCells = loc;

	 public String checkYourself(String userInput)  {

		String result = "miss";
		int index = locationCells.indexOf(userInput);
		
		if (index >= 0)  {
			locationCells.remove(index);
			
			if (locationCells.isEmpty())  {
				result = "kill";
			}  else  {
				result = "hit";
			}
		}
	}
}

Quando compilo aparece o seguinte erro:

<blockquote>javac DotCom.java

DotCom.java:9: error: illegal start of expression

public String checkYourself(String userInput)  {

^

DotCom.java:9: error: ‘;’ expected

public String checkYourself(String userInput)  {

^

DotCom.java:9: error: ‘;’ expected

public String checkYourself(String userInput)  {

^

DotCom.java:24: error: reached end of file while parsing

}

^

4 errors

</blockquote>

2 Respostas

TerraSkilll

Você colocou um método (checkYourself(String userInput) ) dentro de outro método (setLocationCells(ArrayList loc)), o que não é válido. De fato, nesse caso, a mensagem não ajudou muito, mas não creio que haja um modo de tornar esta mensagem em particular mais objetiva.

Tente:
import java.util.ArrayList;  

public class DotCom  {  
  private ArrayList<String> locationCells;  

  public void setLocationCells(ArrayList<String> loc)  {
    locationCells = loc;
  }
  // veja que a função "checkYourself" está fora da função setLocationCells
  public String checkYourself(String userInput)  {  
    String result = "miss";  
    int index = locationCells.indexOf(userInput);  

    if (index >= 0)  {  
      locationCells.remove(index);  

      if (locationCells.isEmpty()) { 
        result = "kill";  
      }  else  {
        result = "hit";  
      }
    }
  }
}
Abraço.
L

Obrigado pela ajuda , deu certo agora, também havia esquecido o return result;
vlws, abs

Criado 7 de novembro de 2013
Ultima resposta 7 de nov. de 2013
Respostas 2
Participantes 2