美文网首页
Effective Java - 优先考虑泛型

Effective Java - 优先考虑泛型

作者: DZQANN | 来源:发表于2022-06-16 22:06 被阅读0次
  1. 使用泛型的时候,如果内部是通过封装数组实现的,就会遇到不能实例化泛型数组的问题,不能new Object[DEFAULT_INITIAL_CAPACITY]

  2. 解决不能实例化泛型数组有两个方法,在创建时候强转和在使用时候强转

    • public class Stack<E> {
        private E[] elements;
        private int size = 0;
        private static final int DEFAULT_INITIAL_CAPACITY = 16;
      
        @SuppressWarnings("unchecked")
        public Stack() {
          elements = (E[]) new Object[DEFAULT_INITIAL_CAPACITY];
        }
      
    • public class Stack<E> {
        private Object[] elements;
        private int size = 0;
        private static final int DEFAULT_INITIAL_CAPACITY = 16;
      
        public Stack() {
          elements = new Object[DEFAULT_INITIAL_CAPACITY];
        }
      
        public E pop() {
          if (size == 0)
            throw new EmptyStackException();
      
          // push requires elements to be of type E, so cast is correct
          @SuppressWarnings("unchecked") E result =
            (E) elements[--size];
      
          elements[size] = null; // Eliminate obsolete reference
          return result;
        }
      
    1. 方法一的优势是可读性想并且更加简洁,在开发中可以尽量使用第一种写法。第一种写法的缺点是堆污染(heap pollution),后面章节会讲到

思考

这节的题目虽然叫优先使用泛型,主要讲的其实是使用泛型的注意点。总体上感觉其实实际开发中并不太会碰到。首先泛型数组,至少我自身不会用到,如果真的碰到了就使用List。对于可变参数是一个List的数组,印象中之前出现过,只要保证不改变类型的情况下,简单的遍历是不会出错的

相关文章

  • [Effective Java] Item 27: Favor

    类似于Item 26里优先考虑泛型,Item 27告诉我们要优先考虑泛型方法。 编写泛型方法和编写泛型类相似。泛型...

  • 优先考虑泛型

    一般来说,将集合声明参数化,使用JDK提供的泛型或者泛型方法都不困难,,编写自己的泛型会比较困难一些,但是值得花时...

  • 《 Effective Java》关于泛型,方法和枚举,注解的建

    泛型 27.优先考虑泛型方法28.利用有限制通配符来提高API的灵活性29.优先考虑类型安全的异构容器 枚举 30...

  • 第五章泛型

    目录 不要使用原始类型 消除非检查警告 列表优于数组 优先考虑泛型 优先使用泛型方法 使用限定通配符来增加API的...

  • Java泛型教程

    Java泛型教程导航 Java 泛型概述 Java泛型环境设置 Java泛型通用类 Java泛型类型参数命名约定 ...

  • 优先考虑泛型方法

    就如类可以从泛型中收益一般,方法也一样。静态工具方法尤其适合于泛型化。collections中的所有“算法”方法(...

  • Effective Java-泛型

    Java1.5版本中增加了泛型。在没有泛型之前,从集合中读取到的每一个对象都必须进行转换。如果不小心插入了错误类型...

  • Effective Java(四) 泛型

    泛型 Tip-23 请不要在新代码中使用原生态类型 java1.5 版本后 就不要使用 List 而是 使用 Li...

  • Effective Java-泛型

    请不要在新代码中使用原生态类型 如果使用像List这样的原生态类型,就会失掉类型安全性,但是如果使用像List 这...

  • Effective Java 第三版——29. 优先考虑泛型

    Tips《Effective Java, Third Edition》一书英文版已经出版,这本书的第二版想必很多人...

网友评论

      本文标题:Effective Java - 优先考虑泛型

      本文链接:https://www.haomeiwen.com/subject/xnwhvrtx.html