[問題] SCJP 泛型問題求教

看板java作者 (skipeco)時間11年前 (2014/04/09 22:07), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
小弟最近看到此題: http://magicloren.blogspot.tw/2009/02/217.html 查了幾個中英文的題解網站,都認為解答應在第一個空格處填入 public class GenericB<T extends Pet> 這自然是一種可行的答案。但小弟的問題是: 是否 public class GenericB<T> 也是可行的? 原因在於: 1. 雖然 Cat 的確實做介面 Pet,但在題目中 main 方法之下, 完全都只有使用到 Cat,因此僅使用 T 來對應 Cat不就已經足夠了嗎? 是否有任何理由不可使用 T ,而非得使用 T extends Pet? 2. 實際將僅使用 T 的程式碼在 jdk8 下是可成功 compile 的, 但幾乎所有的網站都一至認為是 T extends Pet,不免會讓我疑惑是否疏忽了什麼? 附上編譯用的程式碼,請各位先進解惑了m(_ _)m GenericB.java -------------------------- import java.util.*; public class GenericB<T> { public T foo; public void setFoo(T foo){ this.foo = foo; } public T getFoo(){ return foo; } public static void main(String[] args) { GenericB<Cat> bar = new GenericB<Cat>(); bar.setFoo(new Cat()); Cat c = bar.getFoo(); } } interface Pet{}; class Cat implements Pet{}; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.30.66 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1397052457.A.773.html

04/10 02:49, , 1F
題目要求compile successfully 那T或T extends Pet都算對
04/10 02:49, 1F

04/10 23:36, , 2F
感謝,主要是想問問看有沒有什麼地方不是我這新手想得那
04/10 23:36, 2F
文章代碼(AID): #1JHLGfTp (java)
文章代碼(AID): #1JHLGfTp (java)