java generics 里面的<E>是什么意思?
刚刚开始学generics,搞不懂,还有Comparable是什么意思呢?简单帮我讲一下就好了,让我明白个大概,谢谢!...
刚刚开始学generics,搞不懂,还有Comparable是什么意思呢?
简单帮我讲一下就好了,让我明白个大概,谢谢! 展开
简单帮我讲一下就好了,让我明白个大概,谢谢! 展开
3个回答
展开全部
<E>是只Java泛型。
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
展开全部
Java5以后添加的泛型,所谓泛型就是:将类型参数化以达到代码复用提高软件开发工作效率的一种数据类型。
例如:通常一个方法或过程的签名都是有明确的数据类型的。
如 :
public void ProcessData(int i){}
public void ProcessData(string i){}
这些方法的签名中的:int ,string 都是明确的数据类型,程序员访问这些方法的过程中需要提供提定类型的参数:
ProcessData(123);
ProcessData("abc");
而如果我们将int ,string,decimal,double这些类型也当成一种参数传给方法的时候方法的定义便是这样:
public void ProcessData<T>(T i){} //T是int ,string,decimal,double这些数据类型的指代
用户在调用的时候便成了这样:
ProcessData<string>("abc");
ProcessData<int>(123);
这与通常的那些定义的最大区别是,方法的定义实现过程只有一个。但是它具有处理不同的数据类型数据的能力。
例如:通常一个方法或过程的签名都是有明确的数据类型的。
如 :
public void ProcessData(int i){}
public void ProcessData(string i){}
这些方法的签名中的:int ,string 都是明确的数据类型,程序员访问这些方法的过程中需要提供提定类型的参数:
ProcessData(123);
ProcessData("abc");
而如果我们将int ,string,decimal,double这些类型也当成一种参数传给方法的时候方法的定义便是这样:
public void ProcessData<T>(T i){} //T是int ,string,decimal,double这些数据类型的指代
用户在调用的时候便成了这样:
ProcessData<string>("abc");
ProcessData<int>(123);
这与通常的那些定义的最大区别是,方法的定义实现过程只有一个。但是它具有处理不同的数据类型数据的能力。
参考资料: http://zhidao.baidu.com/question/92264375.html
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Generics概念
Java的Generics就是Java的泛型,类似于C++的模板概念,Generics介绍起来比较复杂,简单说来,泛型从语言特性的底层上支持,可以让你为某些相似功能定义一个具有统一接口的通用模板,该模板可以接收任意类型并应用到类成员变量的类型,方法的参数类型,方法的返回值类型等;并可以在编译期支持类型的安全转换。举例说:
java.util.List是一个泛型,一个定义为List<User> userList;的变量userList,可以通过User user = userList.get(0);便可直接得到User,不用经过类型的强制转换了。
参考
http://hi.baidu.com/3seefans/blog/item/d6a535644ea29ff3f636545d.html
Java的Generics就是Java的泛型,类似于C++的模板概念,Generics介绍起来比较复杂,简单说来,泛型从语言特性的底层上支持,可以让你为某些相似功能定义一个具有统一接口的通用模板,该模板可以接收任意类型并应用到类成员变量的类型,方法的参数类型,方法的返回值类型等;并可以在编译期支持类型的安全转换。举例说:
java.util.List是一个泛型,一个定义为List<User> userList;的变量userList,可以通过User user = userList.get(0);便可直接得到User,不用经过类型的强制转换了。
参考
http://hi.baidu.com/3seefans/blog/item/d6a535644ea29ff3f636545d.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询