java泛型的详解及实例

  

java泛型的详解及实例

  

Java在1.5版本中增加了泛型,在没有泛型之前,从集合中读取每一个对象都需要进行强转,如果一不小心插入了类型错误的对象,在运行时就会报错,给日常开发带来了很多不必要的麻烦,比如以下代码:

        公开课TestGeneric   {   公共静态void main (String [] args) {   名单列表=new ArrayList ();   列表。添加(“名字:”);   列表。添加(“零,”);   列表。添加(年龄:");   list.add (24);   list.add(假);   (对象:对象列表)   {   字符串测试=(字符串)对象;   System.out.print(测试);   }   }   }   之前            名称:0,年龄:异常的线程“主要”. lang。ClassCastException: . lang。以整数不能投   在com.zm.zero.test.TestGeneric.main (TestGeneric.java: 18)      

经过运行,立马脾气来了,小样,来本事啦!

  

列表和List有什么区别,不严格的说,前者逃避了泛型检查,后者告诉编译器,持有一个对象类型的对象,属于编译器的一种优化,在编译的时候不通过来增加类型的安全性。如果上述代码使用的是泛型,便可以避免这类事故的发生,在Java的编程思想中,一直在提倡“出错之后尽快发现”,那么编译时发现报错肯定优先于运行时的报错,此处做了一个简单的修改:

  

癹ava泛型的详解及实例"

  

此处仅仅是把单改成了List去检查添加时候值的类型,如果添加时候值的类型是非法的,编译时便会报错。

  

对于创建泛型对象,几乎每个开发者都会使用过,比如最初学的forname()返回的对象就是Class         公开课JsonToModel   {/* *   *   * @param味精   * @param t   *模型类   * @return   */公共静态& lt; T扩展BaseModelt) {//TODO自动生成方法存根   试一试   {   JsonObject JsonObject=new JsonParser () .parse (msg.obj.toString ())   .getAsJsonObject () .getAsJsonObject(“信息”);   返回GsonHelper.toType (jsonObject.toString (), t);   }捕捉(异常e)   {//TODO自动生成的catch块   e.printStackTrace ();   }   返回null;   }   }      之前      

癹ava泛型的详解及实例"

  

除了T以外,常见的还有以下几种:

  
      <李> E -元素(在集合中使用,因为集合中存放的是元素)   <李> K -键(键)   <李> V -值(值)   <李> N -数(数值类型)   <李> ? -表示不确定的java类型
      李   
  

日常开发中什么时候用到泛型吗?那就多了,比如解析json的时候,正常情况下,后台返回的json基本格式都是相同的,但是里面字段各有不同,通过泛型传入不同的模型中,大大的提高了代码的可重用性和可维护性,为了以后的开发省去太多不必要的麻烦。

  

以上就是java泛型的使用方法总结,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

java泛型的详解及实例

Copyright © 2020-2023 feiqueyun.cn. All Rights Reserved. 肥雀云_南京肥雀信息技术有限公司版权所有 南京肥雀信息技术有限公司 苏ICP备16063723号-5