`

Java泛型应该注意的细节

 
阅读更多

1、不可以用一个本地类型(如int float)来替换泛型.比如List<Integer>不能用List<int>型式

2、运行时类型检查,不同类型的泛型类是等价的(Pair<String>与Pair<Employee>是属于同一个 类型 Pair),这一点要特别注意:即如果a instanceof Pair<String>==true的话,并不代表a.getFirst()的返回值是一个String类型

3、泛型类不可以继承Exception类,即泛型类不可以作为异常被抛出

4、不可以定义泛型数组

5、不可以用泛型构造对象,即T first = new T(); 是错误的

6、在static方法中不可以使用泛型,泛型变量也不可以用static关键字来修饰

7、不要在泛型类中定义equals(T x)这类方法,因为Object类中也有equals方法,当泛型类被擦除后,这两个方法会冲突

8、根据同一个泛型类衍生出来的多个类之间没有任何关系,不可以互相赋值,即Pair<Number> p1; Pair<Integer> p2; p1=p2; 这种赋值是错误的。

9、若某个泛型类还有同名的非泛型类,不要混合使用,坚持使用泛型类
Pair<Manager> managerBuddies = new Pair<Manager>(ceo, cfo);
Pair rawBuddies = managerBuddies; 这里编译器不会报错,但存在着严重的运行时错误隐患

分享到:
评论

相关推荐

    java泛型深入.pdf

    Java泛型是Java语言中用于处理类型安全的一种机制,它允许在编译期间提供类型检查,并在运行时消除了类型转换。Java泛型深入的内容涵盖泛型的基本概念、泛型类、接口、方法以及泛型的使用限制和高级特性。 首先,...

    Java1.5泛型指南中文版

    - **转型与 instanceOf**:使用泛型时,需要注意类型转换和 instanceOf 检查的正确性,以避免运行时错误。 - **数组**:泛型不能应用于原始类型的数组,因为 Java 的类型系统无法区分不同类型数组的长度。 #### 8. ...

    Java 一些值得注意的细节

    本文将深入探讨Java的一些值得注意的细节,帮助你避免常见陷阱,提升代码质量。 1. **自动装箱与拆箱**:Java中的`Integer`等包装类提供了自动装箱和拆箱功能,方便了开发者操作。但需要注意,虽然在基本类型和包装...

    JavaGenericsFAQ

    3. **实践编程中的Java泛型**:这一部分关注在实际开发中使用Java泛型时可能遇到的问题,比如如何设计泛型API、是否应该使类泛型化、混合使用泛型与非泛型Java时会发生什么情况等。 4. **编译器背后的Java泛型技术...

    java 面试题 java 基础 java 注意事项

    在Java编程领域,面试题常常围绕基础概念、最佳实践以及注意事项。以下是一些常见的Java面试知识点的详细解释: 1. **面向对象的特征** - **抽象**:抽象是将复杂的现实问题简化为一系列概念,忽略不重要的细节,...

    Go-Grizzly允许您在GO中使用集合而不用泛型

    Grizzly是一个专门为Go语言设计的集合库,它提供了类似Java或其他支持泛型的语言中的功能,如Map、Filter、Find等,使开发者能在不依赖泛型的情况下更方便地操作数据。 Grizzly库的核心理念是提供一种类型安全的...

    Java开发学习之Java基础语法注意点共2页.pdf.z

    Java开发是全球软件行业中最为广泛使用的编程语言之一,尤其在企业级应用开发中占据着核心地位。...在实际开发过程中,还需要不断学习和理解Java的高级特性,如反射、线程、注解、泛型等,以便应对更复杂的编程挑战。

    Generic in java programming language

    ### Java泛型编程详解 #### 引言 Java 5引入了多项语言级别的扩展功能,其中最为重要的一项就是泛型(Generics)的引入。本文档旨在为读者介绍Java中的泛型概念及其用法。 如果你熟悉其他语言如C++中的模板...

    Java谜题,java中的有趣的解谜

    8. **泛型**:Java泛型提供了类型安全,但其擦除特性意味着在运行时无法检测到泛型类型的错误。了解类型擦除和边界通配符可以提高代码的灵活性和可维护性。 9. **枚举**:Java枚举不仅仅是一组常量,还可以包含方法...

    Java语言要注意的问题及其实用案例分析,直接拿走吧

    Java具有跨平台、面向对象、泛型编程的特性,广泛应用于企业级应用开发和移动应用开发。了解Java的基本特性和应用场景对于初学者来说至关重要。 #### 二、Java环境搭建要注意的问题 1. **下载并安装Java ...

    c# java互相转换工具

    6. 泛型:C#和Java的泛型语法和用法有细微差别,转换时需要注意类型约束和通配符的区别。 7. 并发处理:C#的`Task`和`async/await`与Java的`Future`和`ExecutorService`在处理并发上有不同的方式。转换时要理解各自...

    VB.NET转JAVA工具

    这个工具包含说明文档和源代码,意味着用户不仅可以直接使用转换工具,还可以研究其内部实现,了解转换过程的细节。 VB.NET(Visual Basic .NET)是Microsoft开发的一种面向对象的编程语言,继承了Visual Basic的...

    Java安装环境所需的JDK1.7

    在安装过程中,阅读`下载说明.txt`可以帮助理解安装细节和注意事项,而`新云软件.url`可能是一个链接,指向更多关于JDK或者Java开发的资源网站。 总之,JDK1.7作为Java开发的重要基础,提供了完整的开发和运行环境...

    8.集成java1

    Scala的泛型虽然与Java的泛型相似,但在实现细节上有所不同。对于这些无法直接映射的特性,Scala编译器会使用特定的编码策略来适应Java环境。例如,可以通过反编译工具(如javap)查看编译后的.class文件来了解具体...

    java代码细节总结1.0版本.7z

    **Java代码细节总结1.0版本** 在编程领域,Java是一种广泛应用的面向对象的编程语言,以其健壮性、安全性和跨平台性而备受青睐。本总结主要关注Java编程中的关键细节,帮助开发者深入理解并优化其代码。 1. **基础...

    Java C# 语法 比较

    - Java的泛型(Generics)与C#中的泛型存在语法上的相似性,但实现细节有所不同。 - 两种语言都支持数值转换、装箱和拆箱操作。 4. 表达式与运算符 - Java和C#的算术运算符、关系运算符和逻辑运算符基本相同。 ...

    JAVA语言程序设计补充材料及例题代码

    在深入探讨Java编程语言的知识点...以上只是部分Java编程的关键知识点,实际的补充材料和例题代码可能会涵盖这些话题的更多细节和实际应用。通过解决习题和分析示例代码,学习者能够加深对Java的理解,提升编程能力。

    继承 接口与泛型PPT学习教案.pptx

    需要注意的是,Java不支持多重继承,即一个子类只能有一个父类。 **子类与父类的继承性**: 1. **继承的定义**:子类会自动继承父类非私有(`public`或`protected`)的成员变量和方法,就好像它们在子类中直接声明...

Global site tag (gtag.js) - Google Analytics