Java泛型小记
2017-02-10 20:54
357 查看
Automobile类:
Holder1类:持有指定的单一类型对象。
Holder2类:持有Object对象。
Holder3类:使用泛型,持有单一对象,但是暂时不指定其类型,到使用时决定持有何种对象。
主程序Main:
程序运行结果为:
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
相关文章推荐
- 扩展KMP算法(Extend KMP) 学习小记 Hdu 4333 Revolving Digits
- java泛型——从源头杜绝类型转换异常—基本使用姿势浅析
- 小记C++函数指针的用法
- 学习RAC小记-适合给新手看的RAC用法总结
- 安卓环境搭建小记
- Java泛型
- Git命令小记
- bzoj小记
- 正则表达式分组小记
- Java泛型总结(转)
- Java泛型
- springBoot学习之注解小记
- 高内聚与低耦合实现小记
- Java泛型详解
- java泛型学习(1)
- Map集合_HashMap_TreeMap_等_小记
- Java泛型总结
- java泛型的通配符
- 小记(一):字符串与字符串数组之间的转换
- 每日小记 2017-11-30