源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Java编程泛型限定代码分享

  • 时间:2022-03-06 08:54 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Java编程泛型限定代码分享
 泛型 一般 出现在集合中,迭代器中 也会出现! 泛型 是为了 提高代码的 安全性。 泛型 确保数据类型的唯一性。 在我们常用的容器中, 越是单一越好处理啊!       泛型的限定: ? 是通配符 指代 任意类型 泛型的限定上限: <? extends E> 接受 E 或者 E 的子类型。 泛型的限定下限: <?  super   E>  接收  E 或者 E 的父类。 泛型的限定上限 (定义父类 填装子类 类型!) [b]下面我们看看具体代码示例[/b]
package newFeatures8;
import java.util.*;
/*
? 通配符。也可以理解为占位符。
泛型的限定;
? extends E: 可以接收E类型或者E的子类型。上限。
? super E: 可以接收E类型或者E的父类型。下限
*/
class GenericDemo6 {
 public static void main(String[] args) {
  /*
   * ArrayList<String> al = new ArrayList<String>();
   * 
   * al.add("abc1"); al.add("abc2"); al.add("abc3");
   * 
   * ArrayList<Integer> al1 = new ArrayList<Integer>(); al1.add(4);
   * al1.add(7); al1.add(1);
   * 
   * printColl(al); printColl(al1);
   */
  //ArrayList<Person> al = new ArrayList<Student>();error
  //为了解决等号两边泛型不一致的情况,jdk1.7以后可以这么写
  ArrayList<Person> al = new ArrayList<>();//右边的泛型自动反射进来
  al.add(new Person("abc1"));
  al.add(new Person("abc2"));
  al.add(new Person("abc3"));
  // printColl(al);
  ArrayList<Student> al1 = new ArrayList<Student>();
  al1.add(new Student("abc--1"));
  al1.add(new Student("abc--2"));
  al1.add(new Student("abc--3"));
  printColl(al1); 
 }
 public static void printColl(Collection<? extends Person> al) {
  Iterator<? extends Person> it = al.iterator();
  while (it.hasNext()) {
   System.out.println(it.next().getName());
  }
 }
 /*public static void printColl(ArrayList<?> al)
 {
  Iterator<?> it = al.iterator();
  while (it.hasNext()) {
   System.out.println(it.next().toString());
  }
 }*/
}
class Person {
 private String name;
 Person(String name) {
  this.name = name;
 }
 public String getName() {
  return name;
 }
}
class Student extends Person {
 Student(String name) {
  super(name);
 }
}
/*
 class Student implements Comparable<Person> { 
  public int compareTo(Person s){ 
   this.getName() 
  }
 }
 */
/*
 class Comp implements Comparator<Person>{ //<? super E> 
  public int compare(Person s1,Person s2) {
  //Person s1 = new Student("abc1");
  return s1.getName().compareTo(s2.getName()); 
  }
 }
 TreeSet<Student> ts = new TreeSet<Student>(new Comp());//TreeSet(Comparator<? super E> comparator) 
 ts.add(new Student("abc1"));
 ts.add(new Student("abc2"));
 ts.add(new Student("abc3"));
 */
[b]总结[/b] 以上就是本文关于Java编程泛型限定代码分享的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅:[url=http://www.1sucai.cn/article/125836.htm]Java编程基础测试题分享[/url]、[url=http://www.1sucai.cn/article/125931.htm]Java编程redisson实现分布式锁代码示例[/url]、[url=http://www.1sucai.cn/article/125539.htm]Java线程安全与非线程安全解析[/url]等,如有不足之处,欢迎留言指出,小编会及时回复大家并进行修改,希望朋友们对本站多多支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部