java泛型-泛型类,泛型接口,常用形式
泛型简单使用:
package com.etc; import java.util.ArrayList;
import java.util.List;
/*
泛型就相当于<>一个标签,泛化类型,一般用于规定集合的数据存放类型。
instanceof方法是用来判断某个对象是否为某一个类的实例 */
public class Test { public static void main(String[] args) { List<String> list=new ArrayList<String>();
list.add("abc");
//无法存放除String类型的数据,较为安全,会进行类型检查
//list.add(1);
//取数据较为省心
System.out.println(list.get(0)); } }
1.泛型类:
package com.test;
/*
自定义泛型类的使用,尽量用大写字母表示
T -> Type
K V ->Key Value
尽量见名知其意
泛型不能用于静态的属性
*/
public class Teacher<T> { public T name;
// private T id; public Teacher(T name) {
super();
this.name = name;
} public Teacher() {
super();
} public T getName() {
return name;
}
public void setName(T name) {
this.name = name;
} }
泛型类的使用:
package com.test;
/*
自定义泛型类的使用,在声明时需要指定具体的类型,不能为基本类型
*/
public class TestTeacher { public static void main(String[] args) { Teacher<String> list=new Teacher<String>();
list.setName("皮卡丘");
System.out.println(list.getName()); } }
效果截图:

2.泛型接口:
package com.test;
public interface Person <T>{
//泛型不能用于全局变量前
/*public static final 编译时自动添加*/
int MAX_VALUE=1;
/*public abstract 编译时自动添加*/
T compare(T t);
}
泛型接口的实现:
package com.test;
//泛型接口的实现,必须指定泛型的类型
public class TestPerson implements Person<String> { public static void main(String[] args) { String t="I like codes very much!!!!";
TestPerson ts=new TestPerson();
System.out.println(ts.compare(t)); } @Override
public String compare(String t) {
return t;
} }
效果截图:

3.常用泛型形式:
(1)Student.java
package com.test; import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class Student { public String name;
public int id;
public Date birth; public Student(String name, int id, String birth) {
super();
this.name = name;
this.id = id;
DateFormat format=new SimpleDateFormat("yyyy-MM");
try {
this.birth = format.parse(birth);
} catch (ParseException e) {
e.printStackTrace();
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
} }
(2)TestStudent.java
package com.test; import java.util.ArrayList;
import java.util.List; public class TestStudent { public static void main(String[] args) { List<Student> list=new ArrayList<Student>();
Student stu1=new Student("张三",1,"1998-03");
Student stu2=new Student("李四",2,"1998-04");
list.add(stu1);
list.add(stu2);
System.out.println(list.get(0).getName()+" "+list.get(0).getId()+" "+list.get(0).getBirth());
System.out.println(list.get(1).getName()+" "+list.get(1).getId()+" "+list.get(1).getBirth()); } }
效果截图:

java泛型-泛型类,泛型接口,常用形式的更多相关文章
- java 泛型 -- 泛型类,泛型接口,泛型方法
泛型T泛型的许多最佳例子都来自集合框架,因为泛型让您在保存在集合中的元素上指定类型约束.在定义泛型类或声明泛型类的变量时,使用尖括号来指定形式类型参数.形式类型参数与实际类型参数之间的关系类似于形式方 ...
- Java 泛型-泛型类、泛型方法、泛型接口、通配符、上下限
泛型: 一种程序设计语言的新特性,于Java而言,在JDK 1.5开始引入.泛型就是在设计程序的时候定义一些可变部分,在具体使用的时候再给可变部分指定具体的类型.使用泛型比使用Object变量再进行强 ...
- Java泛型(泛型接口、泛型类、泛型方法)
转载 转载出处:https://www.cnblogs.com/JokerShi/p/8117556.html 泛型接口: 定义一个泛型接口: 通过类去实现这个泛型接口的时候指定泛型T的具体类型. 指 ...
- java 泛型详解(普通泛型、 通配符、 泛型接口)
java 泛型详解(普通泛型. 通配符. 泛型接口) JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0.这说明Java已经有大幅度的变化.本文将讲解JDK5.0支持的新功能---- ...
- java 泛型详解(普通泛型、 通配符、 泛型接口,泛型数组,泛型方法,泛型嵌套)
JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0.这说明Java已经有大幅度的变化.本文将讲解JDK5.0支持的新功能-----Java的泛型. 1.Java泛型 其实Java ...
- java 泛型实例详解(普通泛型、 通配符、 泛型接口)
java 泛型详解(普通泛型. 通配符. 泛型接口) 2013-02-04 19:49:49| 分类: JAVA | 标签:java |举报|字号 订阅 下载LOFTER客户端 JDK1.5 令我们期 ...
- java泛型应用实例 - 自定义泛型类,方法
近 短时间需要使用泛型,就研究了下,发现网上的问关于泛型的文章都是讲原理的, 很少有提到那里用泛型比较合适, 本文就泛型类和泛型方法的使用给出两 个典型应用场景. 例如一个toString的泛型方法, ...
- Java:泛型基础
泛型 引入泛型 传统编写的限制: 在Java中一般的类和方法,只能使用具体的类型,要么是基本数据类型,要么是自定义类型.如果要编写可以应用于多种类型的代码,这种刻板的限制就会束缚很多! 解决这种限制的 ...
- Java泛型介绍!!!
Java总结篇系列:Java泛型 转自:http://www.cnblogs.com/lwbqqyumidi/p/3837629.html 一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下 ...
随机推荐
- Golang Go Go Go part2:变量及常量声明
三.关键字及内置预声明常量.类型.函数 1.关键字 Go有25个关键字,只能用在语法允许的地方,不能作为名称使用,它们是: break default func ...
- 玩转vue前进刷新,后退不刷新and按需刷新
大白萝卜小课堂开讲了!带你玩转vue前进后退按需刷新! 用vue做后台管理项目,特别是有列表页.列表数据详情页.列表数据修改页功能的码友们,几乎都被vue前进后退都刷新的逻辑坑过,本萝卜更是! 萝卜的 ...
- 3-3 Hadoop集群完全分布式配置部署
Hadoop集群完全分布式配置部署 下面的部署步骤,除非说明是在哪个服务器上操作,否则默认为在所有服务器上都要操作.为了方便,使用root用户. 1.准备工作 1.1 centOS6服务器3台 手动指 ...
- 微信小程序没有返回按钮怎么办?微信小程序左上角返回按钮怎么调出来?
如果你发现自己的小程序页面没有返回按钮,请检查是不是用的wx.redirectTo(OBJECT)进行的跳转,如果是那就把它改成wx.navigateTo(OBJECT)就可以了. wx.naviga ...
- 【面试篇】资深招聘HR有哪些面试技巧?
15年资深招聘HR总结的面试技巧 1.做一下自我介绍 了解应聘者的基本信息和工作经历 2.以往工作中您的职责是什么? 了解应聘者的相关工作经验和其系统性全面性 3.请讲一下您以往的工作经历. ...
- 多媒体文件格式(四):TS 格式
一.TS 格式标准介绍 TS是一种音视频封装格式,全称为MPEG2-TS.其中TS即"Transport Stream"的缩写. 先简要介绍一下什么是MPEG2-TS: DVD的音 ...
- 记录一次JavaWeb开发的乱码解决
POST提交的中文,测试能正确接收到,而且在控制台打印出中文 但是存到数据库乱码 查看了数据库,设置的是utf-8,最后发现应该在数据库连接的地方设置: jdbc:mysql://localhost: ...
- [Swift]LeetCode381. O(1) 时间插入、删除和获取随机元素 - 允许重复 | Insert Delete GetRandom O(1) - Duplicates allowed
Design a data structure that supports all following operations in averageO(1) time. Note: Duplicate ...
- Windows系统下安装Redis
1.首先你要有redis-latest-windws和redisclient-客户端工具 2.在redis-latest-windws文件夹内创建一个批处理文件 start.bat 创建批处理文件的 ...
- Java面向对象特征之封装
package practice;/** * @功能 创建动物类,对动物的属性进行封装 * @author square 凉 * */public class Animal { /** * 动物姓名 ...