标签:track ted size 大写 隐式 产生 new 引用 stack
class Book<T extends Number>{
void go(Stack<T> stack){
}
super Number> stack2){
}
}
1.參数转换>
声明:
class Book<T extends Number>{}
引用:
Book<Number> numBook=new Book<Number>();
Book<Integer> numBook2=new Book<Integer>();
// 同一层级上的參数显式或者隐式的转换都是错误的
// numBook=(Book<Number>)numBook2;
2.比較和赋值:
声明:
class CompareClass<T>{
T a;
CompareClass(T t){
this.a=t;
}
}
比較:
CompareClass<Float> f=new CompareClass<Float>();
CompareClass<Integer> i=new CompareClass<Integer>();
f==i?这样的结果会产生编译错误;
赋值:
f=i;?相同也会产生编译错误。
2.类型參数数组>
声明:
T[] t;
定义:
T[] t=new int[10];//编译错误
改动:
T[] t;
int[] in=new int[]{10,20};
t=in;
3.类型參数静态使用>因为类型參数仅仅有在实例化的时候才确定类型,因此
例如以下的代码。把类型參数作为静态变量将会引发编译错误;
class Person<K,V>{
static K name;
static V age;
static V getName(){
return age;
}
}
标签:track ted size 大写 隐式 产生 new 引用 stack
原文地址:http://www.cnblogs.com/wzjhoutai/p/7100310.html