zoukankan      html  css  js  c++  java
  • Effective Java

    23.请不要在新代码中使用原生态类型

    1.泛型(generic)类或接口:声明中具有一个或多个类型参数(type parameter)的类或接口。e.g. List<E>

    2.每种泛型可以定义一组参数化的类型(parameterized type)。e.g. List<String>

    3.每个泛型定义一个原生态类型。e.g. List

    4.使用参数化类型来允许插入任意类型的对象。e.g. List<Object>

    5.List<String>是List的子类型,而不是List<Object>的子类型。

    6.在不确定或者不在乎集合中元素类型的情况下,可使用无限制的通配符类型。e.g. List<?>

    7.通配符类型是安全的,原生态类型是不安全的。

    例外:

    1.在类文字中必须使用原生态类型。List.class,String[].class,int.class合法,List<String>.class,List<?>.class不合法

    2.在参数化类型上使用instanceof操作符是非法的。

    -------------------------------------------------------------------------------------------

    24.消除非受检警告

    1.当程序员能证明引起警告的代码是类型安全的场合下,可以使用@SuppressWarnings("unchecked")注解来禁止这条警告。

    2.尽量在可能小的范围内使用SuppressWarnings注解,永远不要在类上使用,因为这很有可能掩盖重要的警告。

    3.用注解将禁止该警告的原因记录下来

    -------------------------------------------------------------------------------------------

    25.列表优先于数组

    1.数组是协变的(如果sub是super的子类型,那么数组类型sub[]就是super[]的子类型);

      泛型是不可变的。对于任意两个类型Type1和Type2,List<Type1>既不是List<Type2>的子类型也不是List<Type2>的超类型。

    2.数组是具体化的;泛型是通过擦除来实现的。

      泛型只在编译时强化它的类型信息,在运行时丢弃(擦除)它的元素类型信息。

  • 相关阅读:
    计蒜客 跳跃游戏2
    计蒜客 跳跃游戏
    2018 计蒜之道-初赛 第一场 A-百度无人车
    poj 3625 (最小生成树算法)
    poj 3623(贪心)
    poj2386(dfs搜索水题)
    poj 2761 主席树的应用(查询区间第k小值)
    POJ 2456 编程技巧之------二分查找思想的巧妙应用
    POJ 1995(有关快速幂运算的一道水题)
    1441:【例题2】生日蛋糕
  • 原文地址:https://www.cnblogs.com/niaomingjian/p/4878227.html
Copyright © 2011-2022 走看看