今天研究了下java的泛型,记录一下:
泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。
可以在集合框架(Collection framework)中看到泛型的动机。例如,Map 类允许您向一个 Map 添加任意类的对象,即使最常见的情况是在给定映射(map)中保存某个特定类型(比如 String)的对象。
package generic;
public class Generic {
private T member;
public T getMember() {
return member;
}
public void setMember(T member) {
this.member = member;
}
}
用泛型定义类:Generic,其中有一成员变量member,此处用了泛型表示,则表示在实例化的时候可以用任何类型代替.
如下:
定义两个类,Person和Car,作为Generic类的成员member:
package bean;
public class Person {
private String sex;
private String name;
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
private int age;
}
package bean;
public class Car {
private String color;
private float price;
public Car(String color, float price){
this.color = color;
this.price = price;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
}
测试代码:
public static void main(String[] args) {
Person p = new Person();
Car c = new Car("RED",12.4f);
p.setAge(12);
p.setName("caoyongjun");
Generic g = new Generic();
g.setMember(p);
Generic gc = new Generic();
gc.setMember(c);
System.out.println("age is"+g.getMember().getAge());
System.out.println("color is"+gc.getMember().getColor());
}
如红色代码所示,Generic类既可以接受也可以接受作为类型.
Java 泛型类
猜你喜欢
转载自mayi1202love.iteye.com/blog/2242824
今日推荐
周排行