Assert no java 1.4

Pessoal, no livro da kahty (scjp 5 portugues) diz que assert pode ser usado no java 1.4 como identificador ou palavra chave mas não como ambos. Porem nos meus testes vi que somente no 1.3 pode ser usado como identificador mesmo assim gerando um aviso ao compilar. No 1.4 e 1.5 não pode ser identificador, creio q no 1.6 tb nao. Sendo assim o livro está errado não é mesmo?

marciosouzajunior,

talvez eu tenha interpretado incorretamente a tabela do livro, mas pelo que entendi não podemos usar como identificador…

Command Line ------------------- If assert Is an Identifier ------------------- If assert Is a Keyword
javac -source 1.3 TestAsserts.java ------------------- Code compiles with warnings. ------------------- Compilation fails.
javac -source 1.4 TestAsserts.java ------------------- Compilation fails. ------------------- Code compiles.
javac -source 1.5 TestAsserts.java ------------------- Compilation fails. ------------------- Code compiles.
javac -source 5 TestAsserts.java -------------------Compilation fails. ------------------- Code compiles.
javac -source 1.6 TestAsserts.java ------------------- Compilation fails. ------------------- Code compiles.
javac -source 6 TestAsserts.java ------------------- Compilation fails. ------------------- Code compiles.
javac TestAsserts.java ------------------- Compilation fails. ------------------- Code compiles.

De qualquer maneira, eles não ficam cobrando “história” do Java. Aprenda como o assert funciona com a sintaxe do Java 5 (ou 6), que já é complicado suficiente para a prova.

charlesbraw

A tabela está correta mesmo. Achei estranho que naquela parte onde tem um resumo de tudo do capitulo, ele falou assim “Você pode usar o assert como uma palavra-chave (na versão 1.4) ou um identificador, mas não como ambos.” Mas de qualquer forma eu entendi, apartir do 1.4 só pode usar como palavra-chave. No 1.3 pode usar como identificador mas gera aviso ao compilar.

entanglement

Concordo que não vão cobrar historia do assert mas creio que é fundamental entender como ele funciona nas diferentes versoes para responder questoes como esta:
Question: 04
Click the Exhibit button.

1. public class Test { 2. 3. public static void main(String [] args) { 4. boolean assert = true; 5. if(assert) { 6. System.out.println(?assert is true?); 7. } 8. } 9. 10. }
Given:
javac -source 1.3 Test.java

What is the result?
A. Compilation fails.
B. Compilation succeeds with errors.
C. Compilation succeeds with warnings.
D. Compilation succeeds without warnings or errors.

Você também falou que a sintaxe do assert é complicada. Eu já penso que a sintaxe do assert é bem simples, e dificil é as opçoes na linha de comando. Mas isso aí cada um pensa de um jeito e não estou aqui pra discutir, mas sim pra agradecer por terem respondido e contribuido.