Java泛型小记
Automobile类:
public class Automobile {
private String name;
public Automobile(String name){
this.name= name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Holder1类:持有指定的单一类型对象。
public class Holder1 {
private Automobile automobile;
public Holder1(Automobile automobile){
this.automobile = automobile;
}
public Automobile get(){
return this.automobile;
}
}
Holder2类:持有Object对象。
public class Holder2 {
private Object object;
public Holder2(Object object){
this.setObject(object);
}
public Object getObject() {
return object;
}
public void setObject(Object object) {
this.object = object;
}
}
Holder3类:使用泛型,持有单一对象,但是暂时不指定其类型,到使用时决定持有何种对象。
public class Holder3 <T>{
private T t;
public Holder3(T t){
this.setT(t);
}
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
}
主程序Main:
public class Main {
public static void main(String[] args) {
/*使用Holder1*/
Holder1 holder1 = new Holder1(new Automobile("Iphone"));
System.out.println(holder1.get().getName());
/*使用Holder2*/
//使holder2持有String类型对象
Holder2 holder2 = new Holder2("XiaoMi");
System.out.println(holder2.getObject());
//更改holder2中持有的对象类型
holder2.setObject(new Automobile("HuaWei"));
//向下转型Object->Automobile
Automobile automobile = (Automobile) holder2.getObject();
System.out.println(automobile.getName());
/*使用Holder3*/
//告诉编译器holder3持有的对象类型为String
//此时holder3拥有的对象类型只能为String,不能变更
Holder3<String> holder3 = new Holder3<String>("Vivo");
System.out.println(holder3.getT());
//告诉编译器anotherHolder3持有的对象类型为Automobile
//此时anotherHolder3拥有的对象类型只能为Automobile,不能变更
Holder3<Automobile> anotherHolder3 = new Holder3<Automobile>(new Automobile("Oneplus"));
System.out.println(anotherHolder3.getT().getName());
}
}
程序运行结果为:
Iphone
XiaoMi
HuaWei
Vivo
Oneplus
Java泛型小记的更多相关文章
- Java:泛型小记
Java:泛型小记 对 Java 中的 泛型类,做一个微不足道的小小小小记 泛型实现 概述 开篇: List<String> l1 = new ArrayList<String> ...
- Java泛型的历史
为什么Java泛型会有当前的缺陷? 之前的章节里已经说明了Java泛型擦除会导致的问题,C++和C#的泛型都是在运行时存在的,难道Java天然不支持“真正的泛型”吗? 事实上,在Java1.5在200 ...
- 浅析Java 泛型
泛型是JavaSE5引入的一个新概念,但是这个概念在编程语言中却是很普遍的一个概念.下面,根据以下内容,我们总结下在Java中使用泛型. 泛型使用的意义 什么是泛型 泛型类 泛型方法 泛型接口 泛型擦 ...
- Java:泛型基础
泛型 引入泛型 传统编写的限制: 在Java中一般的类和方法,只能使用具体的类型,要么是基本数据类型,要么是自定义类型.如果要编写可以应用于多种类型的代码,这种刻板的限制就会束缚很多! 解决这种限制的 ...
- java泛型基础
泛型是Java SE 1.5的新特性, 泛型的本质是参数化类型, 也就是说所操作的数据类型被指定为一个参数. 这种参数类型可以用在类.接口和方法的创建中, 分别称为泛型类.泛型接口.泛型方法. Ja ...
- 使用java泛型设计通用方法
泛型是Java SE 1.5的新特性, 泛型的本质是参数化类型, 也就是说所操作的数据类型被指定为一个参数. 因此我们可以利用泛型和反射来设计一些通用方法. 现在有2张表, 一张user表和一张stu ...
- 关于Java泛型的使用
在目前我遇到的java项目中,泛型应用的最多的就属集合了.当要从数据库取出多个对象或者说是多条记录时,往往都要使用集合,那么为什么这么使用,或者使用时有什么要注意的地方,请关注以下内容. 感谢Wind ...
- 初识java泛型
1 协变数组类型(covariant array type) 数组的协变性: if A IS-A B then A[] IS-A B[] 也就是说,java中的数组兼容,一个类型的数组兼容他的子类类型 ...
- 【Java心得总结四】Java泛型下——万恶的擦除
一.万恶的擦除 我在自己总结的[Java心得总结三]Java泛型上——初识泛型这篇博文中提到了Java中对泛型擦除的问题,考虑下面代码: import java.util.*; public clas ...
随机推荐
- 网络:W5500用浏览器配置设备
1.背景 嵌入式端使用网络通信后,可以在PC端进行设备配置.方法有二:1)上位机配置:2)浏览器配置. 上位机配置可以把设置和测量作为一体,功能可以很强大,体验较好. 浏览器配置就是在电路板上搭载一个 ...
- Zabbix Windos agent 安装
系统:Windos 2008 R2 x64 服务:Zabbix_agents_3.0.4.win 一.安装Zabbix_agents_3.0.4.win 1.下载Zabbix_agents_3.0.4 ...
- PHP memcache扩展模块安装
安装php扩展模块memcache memcache 的工作就是在专门的机器的内存里维护一张巨大的hash表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率,减轻后端数据库的读写压力. ...
- 实验一 Linux初步认识
遇到的困难和心得体会: 1.在操作过程中,有道作业是建立一个opt/forloutest的文件,而我建立了一个 OPT文件,cd OPT,却显示not a directory,通过阅读<linu ...
- Wyx20162314 2016-2017-2 《程序设计与数据结构》课程总结
20162314 2016-2017-2 <程序设计与数据结构>课程总结 一.每周作业.结对编程博客的链接汇总 预备作业一01 20162314:专业的期许.浅谈师生关系.对未来学习任务的 ...
- Linux内核优化项
net.ipv4.ip_forward = #该文件内容为0,表示禁止数据包转发,1表示允许 net.ipv4.conf.default.rp_filter = #是否忽略arp请求 net.ipv4 ...
- 配置zabbix通过微信报警企业微信报警
如今势态: 报警的方式可谓是八仙过海各显神通,如电话报警,短信报警,邮件报警,QQ报警,微信报警等等. 电话报警:一般都是使用别的平台的工具,平台给你提供一个接口供你使用,大多数为限量收费款 短信报警 ...
- PHP7的五大新特性
如果你使用的是基于 composer 和 PSR-4 的框架,这种写法是否能成功的加载类文件?其实是可以的,composer 注册的自动加载方法是在类被调用的时候根据类的命名空间去查找位置,这种写法对 ...
- Node.js 项目的配置文件
在 Node.js 中可以通过process.env来访问当前的环境变量信息,比如: { PATH: '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin', T ...
- C++ 函数后面的const
一个函数 AcGePoint3dstartPoint() const; const放在后面跟前面有区别么 ==> 准确的说const是修饰this指向的对象的 譬如,我们定义了 classA{ ...