java源码的t和e(java中t是什么意思)
本文目录一览:
- 1、java中 定义的接口Snatcher 和CdSnatcher 。E,T分别代表什么意思
- 2、java中E,T,?的区别?
- 3、java的类后面尖括号中的E和T各指哪些数据类型?
- 4、你真的了解JAVA中的泛型E、T、K、V吗?
- 5、java中有什么作用
java中 定义的接口Snatcher 和CdSnatcher 。E,T分别代表什么意思
E,T代表泛型,在你声明对象的时候,你会这么写SnatcherString,然后源代码中的E就变成了String
这么说估计你会懵圈,我举个例子:
比如我们写一个容器,Bag(没用List,自己建立一个类方便你理解)。Bag这个类就是一个简单的容器,实现一下
public class BagE {
Object object;
//这个表示向包包里放东西
public void put(E e){
object = e;
}
//这个表示从包包里把东西取出来
public E get(){
return (E)object;
}
}
简单看一下这个例子,如果说你有一个包包,别人用你的包时,不知道应该往里面放什么东西。那你就应该在别人用你的包的时候,告诉别人你这个包是用来装什么的(BagString bag = new BagString();)这个时候泛型就起作用了,源码里所有的E都可以用这个String来代替,在使用put方法的时候你必须传入一个String类型的参数,在get()的时候,返回值也为String(因为你告诉别人说你的包是用来装钱的,别人会乖乖听话把钱存在里面,自然取出来的时候肯定也是钱~~)
java中E,T,?的区别?
java泛型中E和T是可以随便起名的,只是大家习惯用E和T,一传十十传百大家一看到E和T就知道是泛型了,所以这只是习惯使然。比如:
运行结果:
E和T你乱起名字也行:
是不影响运行的。
至于?,?是用于定义泛型的通配符和边界,一般比较常见的是? extends T,可以参考一下这篇资料
java的类后面尖括号中的E和T各指哪些数据类型?
这个你不需要特意去弄清楚,这个是泛型,就只集合里可以装的一些类,吧一些类归纳在一起可以是E也可以是T,
设计思想是,你设计一个集合在装载数据的时候你不一定知道以后需要装的数据类型是什么,那么你可以用这些符号,这样使得代码弹性和可扩张性增强
你真的了解JAVA中的泛型E、T、K、V吗?
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
在没有泛型的情况的下,通过对类型 Object 的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是本身就是一个安全隐患。
那么泛型的好处就是在编译的时候能够检查类型安全,并且所有的强制转换都是自动和隐式的。本质上T,E,K,V都是通配符,没啥区别,只不过是编码时的一种约定俗成的东西。比如上述代码中的 T ,我们可以换成 A-Z 之间的任何一个 字母都可以,并不会影响程序的正常运行。
但是如果换成其他的字母代替 T ,在可读性上可能会弱一些。通常情况下,T,E,K,V,?是这样约定的:?表示不确定的 java 类型。T (type) 表示具体的一个java类型。K V (key value) 分别代表java键值中的Key Value。E (element) 代表Element。
java中有什么作用
E表示范型
比如说ArrayList 它就有E标记
你在生成ArrayList的时候可以规定它里面可以加什么元素
ArrayListString arr=new ArrayListString();
这样写arr里面只能加String元素了,这是一种数据安全的添加,如果你往arr中添加其他类,比如说你自己定义的Student类,编译器就会报错了!
范型是JAVA5.0的四大新特性之一,建议你找点参考书看看!或者在网上搜一下\"范型\"