看板 java 關於我們 聯絡資訊
小弟最近看到此題: 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
pzyc79:題目要求compile successfully 那T或T extends Pet都算對 04/10 02:49
skipeco:感謝,主要是想問問看有沒有什麼地方不是我這新手想得那 04/10 23:36