Given the code fragment:
public class Test {
public static List data = new ArrayList();
// insert code here
{
for (String x : strs) {
data.add(x);
}
return data;
}
public static void main(String[] args) {
String[] d = {"a", "b", "c"};
update(d);
for (String s : d) {
System.out.print(s + " ");
}
}
}
Which code fragment, when inserted at // insert code here, enables the code to compile and and print a b c?
A.
List update (String[] strs)
B.
static ArrayList update(String[] strs)
C.
static List update (String[] strs)
D.
static void update (String[] strs)
E.
ArrayList static update(String[] strs)
題解
題目原先提供的程式,第7行的strs會因為沒有宣告而編譯錯誤。第10行的return會因為目前程式區塊不是可以回傳List物件的方法而編譯錯誤。第15行會因為找不到update方法而編譯錯誤。
為了解決編譯錯誤的問題,必須要在第5行完成方法的宣告。方法的名稱叫作「update」,因為要可以直接在main方法中使用,所以一定是類別靜態(static)方法,要用static修飾。update方法只能接受字串陣列引數的傳入,所以要設定一個字串陣列的參數,至於參數名稱可以從第7行知道,就是「strs」這個變數名稱。第10行需要回傳List物件,所以update方法的回傳值型態應該要宣告成List或是List的父類別型態。
選項A、B、D、E都不符合要求,只有選項C是正確的。