Java基础学习-泛型概述和测试
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基础学习-泛型概述和测试的更多相关文章
- Java基础学习_01 概述及环境配置
一.概述 1.Java语言平台版本 1.1J2SE(Java 2 Platform Standard Edition)标准版 为开发普通桌面和商务应用程序提供的解决方案,该技术体系是其他两者的基础,可 ...
- Java基础学习-接口-概述以及成员特点
package interfaceclass; /*接口的概述: * 接口解决的问题: * 因为java中的继承的单一局限性(子类只能继承一个父类),为了打破这个局限,java语言提供了一个机制,接口 ...
- Java基础学习——泛型
一.泛型方法 /** 自定义泛型:自定义泛型可以理解为是一个数据类型的占位符,或者理解为是一个数据类型的变量. 泛型方法: 泛型方法的自定义格式:修饰符<声明自定义泛型>返回值类型 函数名 ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- java基础学习笔记五(抽象类)
java基础学习总结——抽象类 抽象类介绍
- Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
- Java基础学习中一些词语和语句的使用
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
- 黑马程序员:Java基础总结----泛型(高级)
黑马程序员:Java基础总结 泛型(高级) ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 泛型(高级) 泛型是提供给javac编译器使用的,可以限定集合中的输入类型 ...
随机推荐
- python单元测试框架pytest——fixture函数(类似unitest的setup和teardown)
pytest的setup和teardown函数(曾被一家云计算面试官问到过). pytest提供了fixture函数用以在测试执行前和执行后进行必要的准备和清理工作.与python自带的unitest ...
- Python3.x:zip()函数
Python3.x:zip()函数 1,概述: zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表: 2,示例: (1).示例1: x = [1, 2, 3] y = [4, ...
- spark + yarn调试问题java.nio.channels.ClosedChannelException
spark客户端提交任务至yarn,后台抛错,FinalStatus:UNDEFINED. ./spark-submit --class org.apache.spark.examples.Spar ...
- 20145335郝昊《Java程序设计》课程总结
20145335郝昊<Java程序设计>课程总结 1.读书笔记汇总 第一周学习总结:http://www.cnblogs.com/20145335hh/p/5244638.html 第二周 ...
- Ubuntu 12.04下安装QQ 2012 Beta3
Ubuntu 12.04下安装QQ 2012 Beta3 由于wine的发展非常迅速.现在网上的利用老版本的wine来安装QQ2012的教程已经有些过时了.实际上操作起来非常简单: 第一步:Ctr ...
- POJ_2182 Lost Cows(线段树的简单应用)
基本思路就是,从后往前读取数字small[i].在剩余编号集合里(一开始剩余编号集合为全集)查找第small[i]+1个编号,该编号就是对应位置牛的编号. 若直接用数组来做,则每次查找都需要遍历前n个 ...
- BZOJ 3192: [JLOI2013]删除物品 奇淫技巧&树状数组
点我看题 这题十分奇淫技巧...QAQ因为知道是树状数组的题QAQ刚开始以为维护两个数组的树状数组然后模拟从大到小,然后发现不会打QAQ 于是悄悄咪咪翻开题解了. 实际上两个数组可以看做一个数组 如 ...
- vue编译环境和线上环境url切换
新建一个配置js,导入到接口请求管理类,可以自动根据环境切换if (process.env.NODE_ENV == 'development') { baseUrl = ''; }else{ base ...
- KVM irqfd and ioeventfd
In previous article vhost architecture we mentioned that vhost and the guest signal each other by ir ...
- python中装饰器的执行细节
本文代码借用 廖雪峰的python教程(官网:http://www.liaoxuefeng.com/) 不了解装饰器的可以先看教程 直接上带参数装饰器的代码 def log(text): def de ...