
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
java编程开发语言是目前大多数软件开发项目都在使用的一种编程语言,而今天我们就通过案例分析来了解一下,java编程开发泛型的优缺点与应用实践分析。
Java泛型的优点与局限:
一般的类和方法,只能使用具体的类型:要么是基本类型,要么是自定义的类(可以是基类或接口)。如果要编写可以应用于多种类型的代码,可以使用泛型。
一个类,如果我们在需要说明类型的地方都使用基类或接口,这样确实能够具备更好的灵活性,但也会有一些性能损耗;并且即使使用了接口,对程序的约束还是太强,因为这要求写的代码必须使用特定的接口。而我们通过使用泛型,可以是代码能够应用于“某种不具体的类型(在用该类时传进来类型)。
泛型实现了参数化类型的概念。使代码可以应用于多种类型。
使用场景:用于创建容器类。
JAVA泛型的核心概念:告诉编译器想要使用什么类型,然后编译器帮你处理一切细节。
泛型方法
我们可以在类中包含参数化方法(参数化方法的意思就是使用泛型),而这个方法所在的类可以是泛型类,也可以不是。是否拥有泛型方法,与其所在的类是否泛型没有关系。
泛型方法使得该方法能够独立于类而产生变化。
基本指导规则:无论何时,只有你能做到,就应该尽量使用泛型方法。如果使用泛型方法可以取代将整个类泛型化,那么就应该只使用泛型方法,因为更清楚明白。
使用泛型方法不要指明参数类型,因为编译器会进行类型参数推断。(像可以无数次重载的方法)。如果传入的是基本类型,那么自动包装机制会介入自动包装。
可变参数与泛型方法
泛型方法与可变参数列表能够很好地并存。
java泛型的缺点在于用擦除实现泛型:
擦除减少了泛型的泛化性,如果不使用擦除来实现,而是使用具体化,使类型参数保持为一类实体,那么他将能够在类型参数上执行基于类型的语言操作和反射操作。
泛型类型只有在静态类型检查期间才出现,在此之后,程序中的所有泛型类型都将被擦除,替换为它们的非泛型上界。如List将被擦除为List(即容器类型的被擦除为List),普通的类型变量在未指定边界的情况下被擦除为Object.
擦除的核心动机是为了“迁移的兼容性”,使得泛化的客户端可以用非泛化的类库来使用。
用擦除来实现java泛型的优缺点:
优点是兼容非泛化代码,使我们可以从容的把非泛化代码转变为泛化代码。
缺点是擦除实现的泛型参数类型信息丢失,不能用于显示地引用运行时类型的操作之中,如转型、instanceof操作和new表达式。
擦除和迁移兼容性意味着使用泛型并不是强制的。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。