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
此处仅仅是把单改成了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; } } >之前
除了T以外,常见的还有以下几种:
<李> E -元素(在集合中使用,因为集合中存放的是元素)李> <李> K -键(键)李> <李> V -值(值)李> <李> N -数(数值类型)李> <李> ? -表示不确定的java类型
李>日常开发中什么时候用到泛型吗?那就多了,比如解析json的时候,正常情况下,后台返回的json基本格式都是相同的,但是里面字段各有不同,通过泛型传入不同的模型中,大大的提高了代码的可重用性和可维护性,为了以后的开发省去太多不必要的麻烦。
以上就是java泛型的使用方法总结,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
java泛型的详解及实例