Java泛型
1.声明
class 名称 <泛型列表> 如:
class People <E>
这样声明的类称为泛型类。
注意事项:
- 泛型列表给出的泛型可以作为类的成员变量的类型、方法的类型、局部变量的类型。
- 泛型可以是任何接口或对象,但不能是基本数据类型。
使用泛型的目的:
建立具有类型安全的数据结构如链表、散列映射等。
(在使用这些泛型类建立的数据结构时不必进行强制类型转换,即不要求进行运行时类型检查。)
2.例子
public class Circle {
double area,radius;
Circle(double radius){
this.radius=radius;
}
@Override
public String toString(){
return ""+radius*radius*Math.PI;
}
}
public class Rect {
double sideA,sideB,area;
public Rect(double a,double b){
sideA=a;
sideB=b;
}
@Override
public String toString(){
return ""+sideA*sideB;
}
}
public class Cone <E> {
double height;
E bottom;
public Cone (E b){
bottom=b;
}
public void setHeight(double h){
height=h;
}
public double computerVolume(){
String s=bottom.toString();
double area =Double.parseDouble(s);
return 1.0/3.0*area*height;
}
}
public class Main {
public static void main(String[] args) {
// write your code here
Circle circle=new Circle(10);
Cone<Circle> coneOne=new Cone<Circle>(circle);
coneOne.setHeight(16);
System.out.println(coneOne.computerVolume());
Rect rect=new Rect(3,3);
Cone<Rect> coneTwo=new Cone<Rect>(rect);
coneTwo.setHeight(3);
System.out.println(coneTwo.computerVolume());
}
}