我正在阅读Java Generics并发现以下限制: -
致电instanceof
。这是不允许的,因为在运行时List<Integer>
和
由于类型擦除,List<String>
看起来与Java相同。
但是下面的代码编译得很好。
interface Shippable<T> {
void ship(T t);
}
class ShippableAbstractCrate<H> implements Shippable<H> {
public void ship(H t) {
if(t instanceof Object) {
//do something
}
}
}
3.创建静态变量作为泛型类型参数。这是不允许的,因为 type链接到类的实例。
请举例说明澄清。 我问为什么所有3点都是泛型的限制?
答案 0 :(得分:1)
表示你不能写
if(t instanceof H)
您随时可以撰写if(t instanceof Object)
表示您无法在ShippableAbstractCrate
类中定义以下静态变量:
static H someName;