【发布时间】:2016-02-01 16:16:44
【问题描述】:
假设我有这个界面:
public interface Lookup<T> {
public T find(String name);
}
以下方法有区别吗?
1)
public void process(String name, Lookup<?> table) {
System.out.println(table.find(name));
}
2)
public <S,T extends Lookup<S>> void process(String name, T table) {
System.out.println(table.find(name));
}
在第一种方法中,我使用的是 '?'所以我可以在 Lookup 中使用任何类型,在第二个中我使用 T 和 S 所以 S 所以我也可以在 T 中使用任何类型,女巫是 Lookup。
【问题讨论】:
-
类型擦除后,它们看起来都像第一个。
标签: java oop generics methods generic-programming