码迷,mamicode.com
首页 > 其他好文 > 详细

泛型类,普通泛型类,限制型,通配符

时间:2014-07-06 17:02:41      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:使用   new   ar   re   字符串   c   

 /**
 * 自定义普通泛型类
 * @author Administrator
 *
 * @param <T> 泛型
 */
//public class GenericTest<T> {
// private T member;
// public T getMember() {
//  return member;
// }
// public void setMember(T member) {
//  this.member = member;
// }
//}

 

public class Person {}

public class Student extends Person {}

public class Teacher {}

/**
 * 限制型泛型类
 * @author Administrator
 *
 * @param <T> 泛型
 */
public class GenericTest<T extends Person> {
 private T member;
 public T getMember() {
  return member;
 }
 public void setMember(T member) {
  this.member = member;
 }
}

 

/**************普通泛型类的使用*****************/
// public static void main(String[] args) {
//  GenericTest<String> generic = new GenericTest<String>();
//  generic.setMember("abc");//正确,"abc"是字符串与泛型类型匹配
//  //generic.setMember(100);//出错,100是整形与泛型类型不匹配
//  
//  //GenericTest<int> generic2 = new GenericTest<int>();//出错,泛型类型只能是引用类型,不能是原始类型
//  GenericTest<Integer> generic2 = new GenericTest<Integer>();//正确
// 
//  GenericTest<Person> generic3 = new GenericTest<Person>();//正确
//  Person p = new Person();
//  p.setName("张三");
//  p.setAge(23);
//  generic3.setMember(p);
// }

 

/**************限制型的泛型类的使用*****************/
// public static void main(String[] args) {
//  GenericTest<Student> g1 = new GenericTest<Student>();//正确,因为Student有继承Person
//  GenericTest<Teacher> g2 = new GenericTest<Teacher>();//错误,因为Teacher没有继承Person
//  GenericTest<Person> g3 = new GenericTest<Person>();//正确,可以使用父类本身
// }

 

/**************通配符在泛型类中的使用*****************/
// public static void main(String[] args) {
//  //?是通配符,代表符合要求的类型
//  GenericTest<? extends Person> g1 = new GenericTest<Student>();//正确
//  GenericTest<? extends Person> g2 = new GenericTest<Teacher>();//错误
//  GenericTest<? extends Person> g3 = new GenericTest<Person>();//正确
// 
//  GenericTest<? super Student> g4 = new GenericTest<Person>();//正确
//  GenericTest<? super Student> g5 = new GenericTest<Student>();//正确
//  GenericTest<? super Student> g6 = new GenericTest<Teacher>();//出错
// }

泛型类,普通泛型类,限制型,通配符,布布扣,bubuko.com

泛型类,普通泛型类,限制型,通配符

标签:使用   new   ar   re   字符串   c   

原文地址:http://www.cnblogs.com/danmao/p/3825264.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!