泛型数组+泛型嵌套+泛型应用实例
来源:互联网 发布:中国造不出圆珠笔知乎 编辑:程序博客网 时间:2024/04/30 00:31
泛型数组
关于泛型方法-泛型接口和方法
使用泛型方法时,也可以传递和返回一个泛型数组。
【接收和返回泛型数组】
@SuppressWarnings("unchecked")public class GeneriseDemo30{ public static void main(String args[]){ //返回泛型数组 Integer i[]=fun(1,2,3,4,5,6); //输出数组内容 fun2(i); } //接收可变参数,返回泛型数组 public static <T> T[] fun(T...arg){ return arg; } public static <T> void fun2(T param[]){ System.out.println("接收泛型数组:"); for (T t : param ) { System.out.print(t+"、"); } }}
结果:
以上程序从fun()方法中返回一个泛型数组,在fun()方法接收参数是使用了可变参数传递方式,然后将fun()返回的泛型数组给fun2()进行输出
泛型嵌套
也可以在一个类的泛型中指定另外一个类的泛型。
【定义两个泛型】
class Info<T,V>{ private T var; private V value; public Info(T var,V value){ this.setVar(var); this.setValue(value); } public T getVar(){ return var; } public void setVar(T var){ this.var=var; } public V getValue(){ return value; } public void setValue(V value){ this.value=value; }}class Demo<S>{ private S info; public Demo(S info){ this.setInfo(info); } public S getInfo(){ return info; } public void setInfo(S info){ this.info=info; }}public class GeneriseDemo31{ public static void main(String args[]){ Demo<Info<String,Integer>> d=null; Info<String,Integer> i=null; i=new Info<String,Integer>("凹凸",22); d=new Demo<Info<String,Integer>>(i); System.out.println("1."+d.getInfo().getVar()); System.out.println("2."+d.getInfo().getValue()); }}
运行结果:
实例——泛型应用
用户在设计类的时候往往会关联,例如,一个人中可以定义一个信息的属性,但是一个人可能有各种各样的信息(如联系方式、基本信息)等,所以此信息属性的类型就可以通过泛型进行声明,然后只要设计相应的信息类即可。
【定义标识接口–信息】
interface Info{ //定义一个标识接口,此接口没有定义任何方法}
【定义第一个类–联系方式】
class Contact implements Info{ private String address; private String telphone; public Contact(String address,String telphone){ this.setAddress(address); this.setTelphone(telphone); } public String getAddress(){ return this.address; } public void setAddress(String address){ this.address=address; } public String getTelphone(){ return this.telphone; } public void setTelphone(String telphone){ this.telphone=telphone; } public String toString(){ return "联系方式:"+"\n"+ "\t|--联系地址:"+this.address+ "\t|--联系电话:"+this.telphone; }}
【定义第二个类–个人信息】
class Introduce implements Info{ private String name; private int age; public Introduce(String name,int age){ this.setName(name); this.setAge(age); } public String getName(){ return name; } public void setName(String name){ this.name=name; } public int getAge(){ return age; } public void setAge(int age){ this.age=age; } public String toString(){ return "个人信息:"+"\n"+ "\t|--姓名:"+this.name+ "\t|--年龄:"+this.age; }}
【定义Person类,使用泛型】
class Person<T extends Info>{ private T info; public Person(T info){ this.setInfo(info); } public T getInfo(){ return this.info; } public void setInfo(T info){ this.info=info; } public String toString(){ return this.info.toString(); }}
测试:
public class GeneriseDemo32{ public static void main(String args[]){ //声明Person对象,同时指定Contact类型 Person<Contact> per=null; per=new Person<Contact>(new Contact("中国","111111")); System.out.println(per); //声明Person对象,同时指定Introduce类型 Person<Introduce> per2=null; per2=new Person<Introduce>(new Introduce("凹凸",20)); System.out.println(per2); }}
运行结果:
0 0
- 泛型数组+泛型嵌套+泛型应用实例
- 泛型方法,数组和嵌套设置
- Java泛型--泛型应用--泛型接口、泛型方法、泛型数组、泛型嵌套
- Java泛型--泛型应用--泛型接口、泛型方法、泛型数组、泛型嵌套
- C#-泛型应用实例
- java泛型应用实例
- 泛型的嵌套
- 泛型的嵌套
- java 泛型嵌套
- Java泛型的其他应用——泛型接口、泛型方法、泛型数组以及泛型的嵌套设置
- 泛型分布式应用_实例
- C# 泛型集合实例应用浅析
- C# 泛型集合实例应用
- 泛型应用之一对多实例
- 泛型应用之多对多实例
- Java泛型嵌套示例
- 泛型的嵌套使用
- java 设置嵌套泛型
- 【GDOI2017第三轮模拟day2】树的难题(点剖,树状数组)
- C与C++中的const用法
- uboot的Makefile分析
- V4L2视频采集与视频编码学习目录及总结
- 克隆二叉树
- 泛型数组+泛型嵌套+泛型应用实例
- 无聊写的 一个Soeckt 客户端例子
- 贪心 【还要做题】
- 图像处理与计算机视觉:基础,经典以及最近发展
- js实现在文本框输入图片的路径,在下方动态显示图片
- Java web项目中的乱码问题
- Handker相关知识
- 网页刷新页面方法小结
- express 路由的使用