看板 java 關於我們 聯絡資訊
希望下面的 mList 可以不 cast 直接使用,請問是不是做不到? import java.util.LinkedList; import java.util.List; public class AbsList { private List<?> mList; private String mType; public AbsList newInstance(String type) { mType = type; switch (type) { case "String": mList = new LinkedList<String>(); break; case "Number": mList = new LinkedList<Number>(); } return this; } public void go() { switch (mType) { case "String": ((List<String>) mList).add("A"); for (String s : (List<String>) mList) System.out.println(s); break; case "Number": ((List<Number>) mList).add(0); for (Number n : (List<Number>) mList) System.out.println("" + n); } } public static void main (String[] args) { new AbsList().newInstance("String").go(); } } -- http://changyuheng.github.io/ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.241.98.95 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1418314103.A.5E9.html
swpoker: 本身的邏輯就怪怪的 12/12 10:14
ssccg: 要不cast你type就要用generic,那你整個class就要有個Type 12/12 10:45
ssccg: parameter,你現在的作法完全不generic,跟用List沒差別.. 12/12 10:45