Java 泛型类

今天研究了下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类既可以接受也可以接受作为类型.




猜你喜欢

转载自mayi1202love.iteye.com/blog/2242824