[問題] SCJP 泛型問題求教
小弟最近看到此題:
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
04/10 02:49, 1F
→
04/10 23:36, , 2F
04/10 23:36, 2F
java 近期熱門文章
PTT數位生活區 即時熱門文章