Java T与?

原创 2015年07月11日 10:15:12

T extends Comparable<? super T>

        ?super T:这个我想都没什么问题,泛型下限,参数必须是T及T的父类;

        T extends Comparable:这个问题来了;首先Comparable是接口,不应该用implements,怎么会是用extends来继承;还有不应该用占位符?吗,怎么会用到T。

        第一:这里要注意的是此处的extends和super算是一对的,和在类继承时用到的extends是不同的。此处的extends是用来表示泛型上限,如果后面是接口则表示T必须是该对象本身或其子类,如果是接口则表示T必须实现其接口。

       第二:T在此处兼有?的作用,?本身就是占位符,可以是任意类型的,那么T作为一个固定类型自然也是没有问题的。下面给出一段实例帮助理解。

public class Demo {
	public static void main(String args[]) {
		DemoP<Person> dp = new DemoP<Person>();
		System.out.println(dp);
		DemoT<Person> dt = new DemoT<Person>();
		System.out.println(dt);
	}
}
class Person implements Comparable<Person>{
	public int compareTo(Person o) {
		return 0;
	}
}
class DemoP<Person extends Comparable<Person>> {
	// 内部代码省略
}
class DemoT<T extends Comparable<? extends T>> {
	// 内部代码省略
}
        上例很明显的看到?可以被一个固定的类型Person类代替,也就是说占位符可以被具体的类型来代替,那用T来代替?就很自然了。


java泛型:T与?的使用及区别

T表示泛型,new的时候要加入泛型,更方便通用 ? 表示不确定的类型,一般用在通配 Object表示java中所有类的父类,在集合中使用时要格外注意。 jdk为了便于理解,用K表示键...
  • cris001cris
  • cris001cris
  • 2016年12月17日 20:24
  • 3949

Java泛型中E、T、K、V等的含义

E - Element (在集合中使用,因为集合中存放的是元素)  T - Type(Java 类)  K - Key(键)  N - Number(数值类型)  S,U,...
  • chenlycly
  • chenlycly
  • 2014年05月11日 21:07
  • 48235

Java中 <? super T>,<? extends T>,和<T>的区别

介绍Java中泛型的
  • u011642663
  • u011642663
  • 2015年12月07日 16:09
  • 3068

Java中的泛型<T>类与方法

泛型就是变量类型的参数化。在使用泛型前,存入集合中的元素可以是任何类型的,当从集合中取出时,所有的元素都是Object类型,需要进行向下的强制类型转换,转换到特定的类型。而强制类型转换容易引起运行时错...
  • songkai320
  • songkai320
  • 2016年07月04日 17:52
  • 29256

Java泛型中T和问号(通配符)的区别

类型本来有:简单类型和复杂类型,引入泛型后把复杂类型分的更细了. 概述 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型...
  • ikownyou
  • ikownyou
  • 2017年03月24日 14:17
  • 4453

java泛型中<?>和<T>有什么区别?

public static void printColl(ArrayList al){                 Iterator it = al.iterator();          ...
  • huiweizuotiandeni
  • huiweizuotiandeni
  • 2017年04月22日 21:14
  • 1973

关于java中<T>问题

关于java中问题 Jdk5.0新特性Generic Types (泛型) 原文 来源: 中国IT实验室 作者: 未知 责编: 宝良 1. 介绍 2.定义简单Java泛型 其实Java...
  • zhengqiqiqinqin
  • zhengqiqiqinqin
  • 2013年05月31日 19:22
  • 35747

Java泛型类型参数的界限

作用1. 限制类型参数的类型如要定义一个类IntegerPair来存取元素类型为Integer的对偶,此类可写成如下的形式:public class IntegerPair { public I...
  • bigconvience
  • bigconvience
  • 2016年03月03日 11:24
  • 3085

JAVA基础----java中E,T,?的区别?

Java泛型中的标记符含义:   E - Element (在集合中使用,因为集合中存放的是元素)  T - Type(Java 类)  K - Key(键)  V -...
  • u013378580
  • u013378580
  • 2016年07月07日 14:14
  • 2154

关于java中<T>问题

关于java中问题 Jdk5.0新特性Generic Types (泛型) 原文 来源: 中国IT实验室 作者: 未知 责编: 宝良 1. 介绍 2.定义简单Java泛型 其实Java...
  • zhengqiqiqinqin
  • zhengqiqiqinqin
  • 2013年05月31日 19:22
  • 35747
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java T与?
举报原因:
原因补充:

(最多只允许输入30个字)