重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关java中generic有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
成都创新互联专注于企业网络营销推广、网站重做改版、营山网站定制设计、自适应品牌网站建设、成都h5网站建设、购物商城网站建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为营山等各大城市提供网站开发制作服务。一介绍:
在JavaSE1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
二、泛型参数:
class Gen{ private T ob; //定义泛型成员变量 public Gen(T ob) { this.ob = ob; } public T getOb() { return ob; } public void setOb(T ob) { this.ob = ob; } public void showType() { System.out.println("T的实际类型是: " + ob.getClass().getName()); } } public class GenericParameter { public static void main(String[] args){ //定义泛型类Gen的一个Integer版本 Gen intOb=new Gen (100); intOb.showType(); int i= intOb.getOb(); System.out.println("value= " + i); System.out.println("----------------------------------"); //定义泛型类Gen的一个String版本 Gen strOb=new Gen ("Hello Dylan!"); strOb.showType(); String s=strOb.getOb(); System.out.println("value= " + s); } }
output:
T的实际类型是: java.lang.Integer
value= 100
----------------------------------
T的实际类型是: java.lang.String
value= Hello Dylan!
三、泛型类:
class GenericsFoo{ private T x; public GenericsFoo(T x) { this.x = x; } public T getX() { return x; } public void setX(T x) { this.x = x; } } public class GenericClass { public static void main(String args[]){ GenericsFoo strFoo=new GenericsFoo ("Hello Generics!"); GenericsFoo douFoo=new GenericsFoo (new double("33")); GenericsFoo
output:
strFoo.getX=Hello Generics!
douFoo.getX=33.0
objFoo.getX=java.lang.Object@1d0fafc
四 限制泛型:
import java.util.ArrayList; import java.util.Collection; class CollectionGenFoo{ private T x; public CollectionGenFoo(T x) { this.x = x; } public T getX() { return x; } public void setX(T x) { this.x = x; } } public class GenericRestrict { public static void main(String[] args) { CollectionGenFoo listFoo = null; listFoo = new CollectionGenFoo (new ArrayList()); CollectionGenFoo extends Collection> listFoo1 = null; listFoo1=new CollectionGenFoo (new ArrayList()); System.out.println("实例化成功!"); } }
output:
实例化成功!
五 泛型方法:
public class GenericFunction { publicvoid f(T x) { System.out.println(x.getClass().getName()); } public static void main(String[] args) { GenericFunction ea = new GenericFunction(); ea.f(" "); ea.f(10); ea.f('a'); ea.f(ea); } }
output:
java.lang.String
java.lang.Integer
java.lang.Character
GenericFunction
-----------------------------
dylan presents.
关于“java中generic有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。