课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
泛型的学习与应用在许多Java编程开发项目中都是经常会见到的一个功能应用,而本文我们就通过案例分析来简单了解一下,Java编程泛型概念与泛型方法分享。
1、简单泛型
有许多原因促进了泛型的出现,而引人注目的一个原因,就是为了创建容器类。有些情况下,我们确实希望容器能够同时持有多种类型的对象。但是,通常而言,我们只会使用容器类来存储一种类型的对象。泛型的主要目的之一就是用来指定容器要持有什么类型的对象,而且由编译器来保证类型的正确性。
2、一个元组库类
仅一次方法调用就能返回多个对象,你应该经常需要这样的功能吧。可是return语句只允许返回单个对象,因此,解决办法就是创建一个对象,用它来持有想要返回的多个对象。当然,可以在每次需要的时候,专门创建一个类来完成这样的工作。可是有了泛型,我们就能够一次性地解决该问题,以后再也不用在这个问题上浪费时间了。同时,我们在编译期就能确保类型安全。
这个概念称为元组(tuple),它是将一组对象直接打包存储于其中的一个单一对象。这个容器对象允许读取其中元素,但是不允许向其中存放新的对象。(这个概念也称为数据传送对象,或信使。)
通常,元组可以具有任意长度,同时,元组中的对象可以是任意不同的类型。不过,我们希望能够为每一个对象指明其类型,并且从容器中读取出来时,能够得到正确的类型。要处理不同长度的问题,我们需要创建多个不同的元组。
3、泛型方法
到目前为止,我们看到的泛型,都是应用于整个类上。但同样可以在类中包含参数化方法,而这个方法所在的类可以是泛型类,也可以不是泛型类。也就是说,是否拥有泛型方法,与其所在的类是否是泛型没有关系。
泛型方法使得该方法能够独立于类而产生变化。以下是一个基本的指导原则:无论何时,只要你能做到,你就应该尽量使用泛型方法。也就是说,如果使用泛型方法可以取代将整个类泛型化,那么就应该只使用泛型方法,因为它可以使事情更清楚明白。另外,对于一个static的方法而言,无法访问泛型类的类型参数,所以,如果static方法需要使用泛型能力,就必须使其成为泛型方法。
4、擦除的神秘之处
由于Java泛型是通过擦除来实现的,这意味着当你在使用泛型时,任何具体类型都被擦除了,你知道的就是你在使用一个对象。因此,List和List在运行时事实上都是相同的类型。这两种形式都被擦除成它们的“原生”类型,即List。残酷的现实是,在泛型代码内部,无法获得任何有关泛型参数类型的信息。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。