Estou tentando compilar o seguinte código:
public class Test {
public static void main(String[] args) {
String final = new String("");
final = "sample";
System.out.println(final);
}
}
Aparentemente, o compilador me mostra os seguintes erros:
Test.java:5: error: not a statement
String final = new String("");
^
Test.java:5: error: ';' expected
String final = new String("");
^
Test.java:5: error: illegal start of type
String final = new String("");
^
Test.java:6: error: illegal start of type
final = "sample";
^
Test.java:7: error: illegal start of expression
System.out.println(final);
^
Test.java:7: error: illegal start of type
System.out.println(final);
^
Eu tentei substituir String final = new String("");
com String final;
mas o compilador ainda está mostrando esses erros. Alguma idéia o que poderia causar isso?
final
é a palavra-chave Java reservados . Você não pode usá-lo como um nome de variável. Leia mais sobre a nomeação de variáveis em Java . Faça isso:
String string = new String("");
string = "sample";
System.out.println(string);
No entanto, isso é possível, uma vez que ainda respeita a regra para atribuir o valor uma vez:
final String string;
string = "sample";
System.out.println(string);
Por outro lado, se você quer dizer para fazer cordas final
, não como um nome de variável, mas como características, você tem que colocá-lo para o lado esquerdo da definição da seqüência. No entanto, a segunda linha não compilar porque você não pode modificar a variável marcada como final
.
final String string = new String("");
string = "sample"; // not possible, string already has a value
System.out.println(string);
O comportamento da variável que é final
é que você pode inicializar apenas uma vez. Leia mais em Como funciona a palavra-chave “final” no trabalho de Java?