Given the code fragment:
public static void main(String[] args) {
StringBuilder sb = new StringBuilder(5);
String s = "";
if (sb.equals(s)) {
System.out.println("Match 1");
} else if (sb.toString().equals(s.toString())) {
System.out.println("Match 2");
} else {
System.out.println("No Match");
}
}
What is the result?
A.
Match 1
B.
Match 2
C.
No Match
D. A NullPointerException is thrown at runtime.
題解
程式第7行,判斷StringBuilder物件和字串物件邏輯上是否相等。它們是不同類型的物件,永遠不會相等。
程式第8行,判斷StringBuilder物件轉成字串後和字串物件邏輯上是否相等。它們都是空字串,因此相等,輸出「Match 2」。