作者skipeco (skipeco)
看板java
标题[问题] SCJP 泛型问题求教
时间Wed Apr 9 22:07:32 2014
小弟最近看到此题:
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://webptt.com/cn.aspx?n=bbs/java/M.1397052457.A.773.html
1F:推 pzyc79:题目要求compile successfully 那T或T extends Pet都算对 04/10 02:49
2F:→ skipeco:感谢,主要是想问问看有没有什麽地方不是我这新手想得那 04/10 23:36