日期:2014-05-20  浏览次数:20613 次

java泛型的使用
泛型是在jdk1.6之后才出现的一种机制,说简单点就是一个特定的对象可以接收任何的对象。例如杯子可以装水也可以装饮料,说简单点就是“来者不拒”什么都要。下面我就来写个小例子看一下。
1.写一个接口Info里面什么方法都不用写
view plain
package org.lxh.dao;
public interface Info {
}

2.写2个类实现这个接口
view plain
package org.lxh.impl;
import org.lxh.dao.Info;
public class Introduction implements Info {
  private String name;
  private String age;
  public Introduction(String name, String age) {
  this.name = name;
  this.age = age;
  }
  public String getName() {
  return name;
  }
  public void setName(String name) {
  this.name = name;
  }
  public String getAge() {
  return age;
  }
  public void setAge(String age) {
  this.age = age;
  }
  public String toString() {
  return "[name=" + name + ", age=" + age + "]";
  }
}
 
view plain
package org.lxh.impl;
import org.lxh.dao.Info;
public class Contact implements Info {
  private String address;
  private String phone;
  public String getAddress() {
  return address;
  }
  public Contact(String address, String phone) {
  this.address = address;
  this.phone = phone;
  }
  public void setAddress(String address) {
  this.address = address;
  }
  public String getPhone() {
  return phone;
  }
  public void setPhone(String phone) {
  this.phone = phone;
  }
  public String toString() {
  return "[address=" + address + ", phone=" + phone + "]";
  }
}
这里这么写就代表人的属性,人可以有联系方式和基本信息

3.写一个基础类Person,它既可以接收基本信息也可接收联系方式
view plain
package org.lxh.impl;
import org.lxh.dao.Info;
public class Person<T extends Info> {
  private T info;
  public Person(T info){ //在这里Person可以接收Contact也可以接收Introduction
  this.setInfo(info);
  }

  public void setInfo(T info) {
  this.info = info;
  }
  public T getInfo() {
  return info;
  }
  public String toString() {
  return "个人信息:" + info ;
  }
}

4.编写测试类进行测试
view plain
package org.lxh.test;
import org.lxh.impl.Contact;
import org.lxh.impl.Introduction;
import org.lxh.impl.Person;
public class Test {
 public static void main(String args[]){
  Person<Introduction> p=new Person<Introduction>(new Introduction("陈亚峰","22"));
  System.out.println(p.toString());
  Person<Contact> p2=new Person<Contact>(new Contact("上海市","15289714598"));
  System.out.println(p2.toString());
 }
}
这个测试类把联系方式和基本信息进行了显示,达到了我们所要的效果。



------解决方案--------------------
go on
------解决方案--------------------
散分么? 收下了。。。
------解决方案--------------------
又复习了下……
------解决方案--------------------
让我又复习了一遍。。
------解决方案--------------------
实际上泛型是 JDK 1.5 出现的,呵呵。
------解决方案--------------------