SCJP 1.6版考題 216

出自 陳富國維基館
於 2013年3月30日 (六) 00:04 由 Ikk (對話 | 貢獻) 所做的修訂 (新頁面: <DD>檔案:SCJP216-1.png <DD>檔案:SCJP216-2.png <BR> Given: 1. import java.util.*, 2. public class TestGenericConversion{ 3. public static void main(String[] args){ 4...)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
前往: 導覽搜尋

SCJP216-1.png

SCJP216-2.png

Given:
1. import java.util.*,
2. public class TestGenericConversion{
3.   public static void main(String[] args){
4.   List list = new LinkedList();
5.   list.add("one");
6.   list.add("two");
7.   System.out.print(((String)list.get(O)).length());
8.  }
9.}
Refactor this class to use generics without changing the code's behavior.



解答


Ans:
SCJP216-3 2.png

解說:

此題要求你重整此程式,此程式有一個問題是放入串列集合中的元素除了String物件外,
有可能加入非String的物件,第7行做轉型時,若碰到非String型態的物件,會產生例外! 
因此,就用泛型機制,限定放入串列集合中的元素須為String型態。第7行取出元素時就不用再轉型成String。