泛型(generic)的基本使用

摘要:
列表添加列表添加迭代器it=list。迭代器();虽然{//Personp=it.next();//放弃类型转换,但在泛型可用后,不需要强制转换。

package com.day15.generic;
/*
* 泛型的好处:
* 1.提高安全性(将运行期的错误转换到编译期)
* 2.省去强转的麻烦
* 泛型的使用:
* <>中放的必须是引用数据类型
* 泛型最好不要定义成Object类型,因为没有意义
*/

import java.util.ArrayList;
import java.util.Iterator;

import com.day15.bean.Person;

public class GenericOne {

  public static void main(String[] args) {
    ArrayList<Person> list=new ArrayList<Person>();
    //list.add(100);//报错,因为ArrayList中已经规定了加入的类型时Person类。
    list.add(new Person("Kobe",20));
    list.add(new Person("KG",21));
    Iterator<Person> it=list.iterator();
    while(it.hasNext()) {
    //Person p=(Person)it.next();//向下强制类型转换,但有了泛型之后,就不用再强转了。
    //System.out.println(it.next().getName()+","+it.next().getAge());//Kobe,21,输出的不是Kobe,20,是因为next()是指针类型的,调用过一次后,会指向下一个元素,所以输出                                                                               的是21
    Person p=it.next();//有了泛型后就不用强型转了
    System.out.print(p.getName()+","+p.getAge()+" ");//Kobe,20 KG,21
  }

}

}

免责声明:文章转载自《泛型(generic)的基本使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇wince 基础技能 使用ini配置文件来保存信息Create和CreateEx 区别下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Unity3D游戏轻量级xlua热修复框架

一  这是什么东西 前阵子刚刚集成xlua到项目,目的只有一个:对线上游戏C#逻辑有Bug的地方执行修复,通过考察xlua和tolua,最终选择了xlua,很大部分原因是因为项目已经到了后期,线上版本迭代了好几次,所以引入Lua的目的不是为了开发新版本模块。xlua在我们的这种情况下很是适用,如xlua作者所说,用C#开发,用lua热更,xlua这套框架为...

delphi新语法之泛型实现的对象池模板

现在的DELPHI因为支持泛型的语法,所以也能支持模板编程了。 // 标准模板 unit UntPools; interface uses Classes, SysUtils, UntThreadTimer; type { 这是一个对像池, 可以池化所有 TObject 对像 } { 用法: 在一个全局的地方定义 var Pooler: TObjectP...

Linq初体验

Hello,我又回来了,懒懒的好多日没有写博客的日子。 今天给大家讲讲C#中的Linq用法。 要学会使用Linq的话就一定要理解三个前置知识(委托、泛型、Lambda); 好了,说到这里,估计学C#的很多小伙伴就蒙了。 但是这三个点非常重要,是贯穿了整个C#体系的精髓部分。 本节是专门讲讲Linq是怎么用,以及为什么这么用。 Linq一般常见的用法是结合E...

Jaxb处理泛型,转化成xml字符串

前言:   最近的工作内容跟银行有些交互, 对方提供的数据格式采用xml(不是预期的json/protobuf). 为了开发方便, 需要借助jaxb来实现xml和java对象之间的映射. 它还是有点像jackson, 通过简单的注解配置, 就能轻松实现json和java对象的互转. 不过笔者在java类中引入泛型时, 还是踩了不少jaxb的坑, 这边做下笔...

C#2.0泛型-Dictionary,List的用法

泛型最常见的用途是创建集合类。 .NETFramework类库在System.Collections.Generic命名空间中包含几个新的泛型集合类。应尽可能地使用这些类来代替普通的类,如System.Collections命名空间中的ArrayList,HashTable等。 下面我们就来说下,几个泛型集合类的用法: 一.Dictionary 此类在.N...

C#--反射基础

以下是学习笔记: 一,反射的基本信息 DLL/EXE: 主要区别EXE文件有一个入口,DLL文件不能运行,但是DLL能拿到其他地方去使用 metadata(元数据):描述exe/dll文件的一个清单,记录了exe/dll文件中有哪些类,属性,特性,字段。。。 Reflection(反射):用来操作或获取元数据metadata 有什么作用: 1,更新程序(...