java泛型的使用

Dream__Heart 2011-12-22 11:07:55
泛型是在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());
}
}
这个测试类把联系方式和基本信息进行了显示,达到了我们所要的效果。

...全文
314 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
杀猪剑客 2011-12-28
  • 打赏
  • 举报
回复
+2
[Quote=引用 6 楼 bao110908 的回复:]
实际上泛型是 JDK 1.5 出现的,呵呵。
[/Quote]
v-AUGUST-v 2011-12-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bao110908 的回复:]

实际上泛型是 JDK 1.5 出现的,呵呵。
[/Quote]
火龙果说的对头
aaaa8215 2011-12-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bao110908 的回复:]

实际上泛型是 JDK 1.5 出现的,呵呵。
[/Quote]+1
BigBird2012 2011-12-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bao110908 的回复:]

实际上泛型是 JDK 1.5 出现的,呵呵。
[/Quote]顶一下果子哥
  • 打赏
  • 举报
回复
实际上泛型是 JDK 1.5 出现的,呵呵。
放纵青春 2011-12-23
  • 打赏
  • 举报
回复
又复习了下……
kouyiSC 2011-12-23
  • 打赏
  • 举报
回复
散分么? 收下了。。。
ascendlin 2011-12-23
  • 打赏
  • 举报
回复
go on
zc499498753 2011-12-23
  • 打赏
  • 举报
回复
让我又复习了一遍。。

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧