1.举例

首先先用集合来写个自定义对象存储并且去遍历。

package genericity;

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

public class genericity {
    public static void main(String[] args) {
        /*创建集合对象*/
        Collection ce=new ArrayList();
        /*创建学生类对象*/
        Student st1=new Student("bai-boy", 19);
        Student st2=new Student("xiaoming", 20);
        /*集合中添加元素*/
        ce.add(st1);
        ce.add(st2);
        /*遍历集合*/
        Iterator it=ce.iterator();
        while(it.hasNext()) {
            String str=(String)it.next();
            System.out.println(it);
        }

    }
}
class Student{
    String name;
    int age;
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

但是运行会报错。

这个错误呢是由于创建的Student对象不能转化为String。那么我们这里Java给我们一个机制就是泛型。

泛型:是一种广泛的类型,它把明确数据类型的工作提前到了编译时期而不是运行时期。

这里主要借鉴了数组。数组都是提前明确数据类型,不是同一的数据类型就不能添加进去。

那么我们什么时候使用泛型呢,打开API查看带有<E>就可以使用泛型了。

那我们用泛型来解决上面的问题

package genericity;

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

public class genericity {
    public static void main(String[] args) {
        /*创建集合对象*/
        Collection<Student> ce=new ArrayList<Student>();
        /*创建学生类对象*/
        Student st1=new Student("bai-boy", 19);
        Student st2=new Student("xiaoming", 20);
        /*集合中添加元素*/
        ce.add(st1);
        ce.add(st2);
        /*遍历集合*/
        Iterator<Student> it=ce.iterator();
        while(it.hasNext()) {
            Student st=it.next();
            System.out.println("我叫"+st.name+",年龄:"+st.age);
        }

    }
}
class Student{
    String name;
    int age;
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

以上就是泛型的概述和简单的使用。

Java基础学习-泛型概述和测试的更多相关文章

  1. Java基础学习_01 概述及环境配置

    一.概述 1.Java语言平台版本 1.1J2SE(Java 2 Platform Standard Edition)标准版 为开发普通桌面和商务应用程序提供的解决方案,该技术体系是其他两者的基础,可 ...

  2. Java基础学习-接口-概述以及成员特点

    package interfaceclass; /*接口的概述: * 接口解决的问题: * 因为java中的继承的单一局限性(子类只能继承一个父类),为了打破这个局限,java语言提供了一个机制,接口 ...

  3. Java基础学习——泛型

    一.泛型方法 /** 自定义泛型:自定义泛型可以理解为是一个数据类型的占位符,或者理解为是一个数据类型的变量. 泛型方法: 泛型方法的自定义格式:修饰符<声明自定义泛型>返回值类型 函数名 ...

  4. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  5. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  6. java基础学习笔记五(抽象类)

    java基础学习总结——抽象类 抽象类介绍

  7. Java基础学习-- 继承 的简单总结

    代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...

  8. Java基础学习中一些词语和语句的使用

    在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...

  9. 黑马程序员:Java基础总结----泛型(高级)

    黑马程序员:Java基础总结 泛型(高级)   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 泛型(高级) 泛型是提供给javac编译器使用的,可以限定集合中的输入类型 ...

随机推荐

  1. python单元测试框架pytest——fixture函数(类似unitest的setup和teardown)

    pytest的setup和teardown函数(曾被一家云计算面试官问到过). pytest提供了fixture函数用以在测试执行前和执行后进行必要的准备和清理工作.与python自带的unitest ...

  2. Python3.x:zip()函数

    Python3.x:zip()函数 1,概述: zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表: 2,示例: (1).示例1: x = [1, 2, 3] y = [4, ...

  3. spark + yarn调试问题java.nio.channels.ClosedChannelException

    spark客户端提交任务至yarn,后台抛错,FinalStatus:UNDEFINED. ./spark-submit  --class org.apache.spark.examples.Spar ...

  4. 20145335郝昊《Java程序设计》课程总结

    20145335郝昊<Java程序设计>课程总结 1.读书笔记汇总 第一周学习总结:http://www.cnblogs.com/20145335hh/p/5244638.html 第二周 ...

  5. Ubuntu 12.04下安装QQ 2012 Beta3

    Ubuntu 12.04下安装QQ 2012 Beta3   由于wine的发展非常迅速.现在网上的利用老版本的wine来安装QQ2012的教程已经有些过时了.实际上操作起来非常简单: 第一步:Ctr ...

  6. POJ_2182 Lost Cows(线段树的简单应用)

    基本思路就是,从后往前读取数字small[i].在剩余编号集合里(一开始剩余编号集合为全集)查找第small[i]+1个编号,该编号就是对应位置牛的编号. 若直接用数组来做,则每次查找都需要遍历前n个 ...

  7. BZOJ 3192: [JLOI2013]删除物品 奇淫技巧&树状数组

    点我看题 这题十分奇淫技巧...QAQ因为知道是树状数组的题QAQ刚开始以为维护两个数组的树状数组然后模拟从大到小,然后发现不会打QAQ 于是悄悄咪咪翻开题解了. 实际上两个数组可以看做一个数组 如 ...

  8. vue编译环境和线上环境url切换

    新建一个配置js,导入到接口请求管理类,可以自动根据环境切换if (process.env.NODE_ENV == 'development') { baseUrl = ''; }else{ base ...

  9. KVM irqfd and ioeventfd

    In previous article vhost architecture we mentioned that vhost and the guest signal each other by ir ...

  10. python中装饰器的执行细节

    本文代码借用 廖雪峰的python教程(官网:http://www.liaoxuefeng.com/) 不了解装饰器的可以先看教程 直接上带参数装饰器的代码 def log(text): def de ...