2014-02-20 57 views
-2
String pw = c.readPassword("%s", "pw: "); 
System.out.println("got " +pw); 
String name = c.readLine("%s", "name: "); 
System.out.println(" got ", name); 

如果用戶鍵入fido,然後響應bob提示輸入姓名時,結果是什麼?Console類ReadPassword

A. PW:得了菲名稱:鮑勃得了鮑勃

B. PW:汪汪了汪汪名稱:鮑勃得了鮑勃

C. PW:得了菲名稱:鮑勃得了鮑勃

D. pw:fido got fido名字:bob got bob

E.編譯失敗。 F.運行時拋出異常。

答案爲E

根據我的答案爲E,但我認爲在控制檯你不能readPasswordString因爲char[]是更安全的。但SCJP書上說的,因爲你不能將這樣的刺在

System.out.println(" got ", name); 

「:即用」,」我同意書,但我想知道,如果我們寫

System.out.println("got" + name); 

它會正常工作?和最新爲什麼char[]不是用來代替String

+2

用戶輸入值時如何編譯失敗?這是一個謎語還是什麼? – NeplatnyUdaj

+1

「_if如果我們寫...它會正常工作嗎?什麼是輸出?_」你可以自己嘗試一下,看看會發生什麼。 – csmckelvey

回答

0

user2985842你是正確的,它有兩個錯誤
1)正如你所說的輸出?這行

String pw = c.readPassword("%s", "pw: "); 

包含錯誤,readPassword()返回的char [],但左值是字符串

2),因爲它們表示此行

System.out.println(" got ", name); 

包含錯誤,它必須已經

System.out.println(" got "+ name);