d. Compile-time error at 2

Vc tah passando um char,e o tipo de retorno é um Byte,haverá perda da precisão, e tah faltando uma contrabarra no char c do main! :wink:

Em m1,vc tem uma variável declarada como final dentro do método;
Em tempo de compilação ocorrerá uma compile time constant q nada mais eh do q um cast implicitamente…em m3 vc recebe uma variável(q vc não sabe quem eh)do tipo final char…só trocar o byte de retorno de m3 q compilará perfeitamente. :wink:
Isso só ocorre(pelo q me lembro) em variáveis declaradas como final.

class JSC201 { static byte m1() { final char c = '\u0001'; return c; // 1 } static byte m3(final char c) {return c;} // 2 public static void main(String[] args) { char c = 'u0003'; System.out.print(""+m1()+m3(c)); }}
What is the result of attempting to compile and run the program?

a. Prints: 13
b. Prints: 4
c. Compile-time error at 1
d. Compile-time error at 2
e. Run-time error
f. None of the above

Sempre me esqueço de colocar 2 barras \, s0h vi no método e esqueci de colocar no main :frowning:

Você está certo, a resposta certa é a D.
E porque a o item C não está correto? :?