课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > java泛型:原始类型
  • java泛型:原始类型

    发布:昆明Java培训      来源:达内新闻      时间:2016-11-18

  • 昆明Java培训班的老师今天给大家讲原始类型。

    2.1定义

    原始类型是指没有类型参数的泛型。例如一下声明一个原始类型:

    //ArrayList是一个泛型,因此List变量是原始类型

    ArrayList list=new ArrayList();

    原始类型的旧的java版本的遗产,因为许多API类如集合类在JDK5之前不是泛型,为了向下兼容,将一个参数化的泛型对象赋值给一个原始类型是允许的:

    Box<String> stringBox = new Box<>();

    Box rawBox = stringBox;              // OK

    不过反过来,将一个原始类型赋值给一个参数化的泛型,编译器将会给出警告:

    Box rawBox = new Box();          // rawBox是Box<T>的原始类型

    Box<Integer> intBox = rawBox;    //警告: unchecked conversion

    如果使用原始类型去调用队形的泛型的泛型方法,同样也会得到警告:

    Box<String> stringBox = new Box<>();

    Box rawBox = stringBox;

    rawBox.set(8); // warning: unchecked invocation to set(T)

    编译器警告表明原始类型绕过了类型的检查,而将可能出错的风险留到了运行时,所以尽量不要使用原始类型。

    2.2未检查错误信息

    如之前所提到的,当泛型和传统语法混用时,你将会遇到一些如下的警告消息:

    Note: Example.java uses unchecked or unsafe operations.

    Note: Recompile with -Xlint:unchecked for details.

    “unchecked”(未检查的)这一术语表明编译器没有足够的关于类型信息来执行检查以确保类型的安全,编译器默认警用未检查警告,但是会给出提示,如果想要启用未检查警告,在编译时加入参数-Xlint:unchecked。

    如果想要完全禁用未检查警告,可以编译时加入参数-Xlint:-unchecked(注意与上述参数区别)或者使用注释@SuppressWarnings("unchecked")。

    推荐文章

上一篇:java基础泛型

下一篇:java基础的泛型方法

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56