泛型的其他应用---------(3)
来源:互联网 发布:淘宝客站内推广 编辑:程序博客网 时间:2024/06/04 18:20
1,泛型接口的使用
2,泛型方法的定义及使用
3,泛型数组的使用
4,泛型的嵌套设置
1,泛型接口
声明泛型接口和声明泛型类的语法类似,也是在接口名称后面加上,格式:
interface Info<T>{ // 在接口上定义泛型 public T getVar() ; // 定义抽象方法,抽象方法的返回值就是泛型类型}class InfoImpl implements Info{ // 定义泛型接口的子类 public String getVar(){ return null ; }};
这样直接继承,使用,把泛型类型设置成了一个String,运行不会有问题,但是这样的使用,其实并不是最好的实现泛型接口的操作,最好在实现的时候,也指定其具体的泛型类型。
泛型接口的实现的两种方式
1,定义子类:在子类的定义上也声明泛型类型。
interface Info<T>{ // 在接口上定义泛型 public T getVar() ; // 定义抽象方法,抽象方法的返回值就是泛型类型}class InfoImpl<T> implements Info<T>{ // 定义泛型接口的子类,接口的泛型类型由这个实现类来指定,具体的数据类型,在声明这个类的时候进行指定 private T var ; // 定义属性 public InfoImpl(T var){ // 通过构造方法设置属性内容 this.setVar(var) ; } public void setVar(T var){ this.var = var ; } public T getVar(){ return this.var ; }};public class GenericsDemo24{ public static void main(String arsg[]){ Info<String> i = null; // 声明接口对象 i = new InfoImpl<String>("李兴华") ; // 通过子类实例化对象 System.out.println("内容:" + i.getVar()) ; }};
如果现在实现接口的子类不想使用泛型声明,则在实现接口的时候直接指定好其具体的操作类型即可。
2,第二种:直接实现,在实现泛型接口的时候指定具体的泛型类型。
interface Info<T>{ // 在接口上定义泛型 public T getVar() ; // 定义抽象方法,抽象方法的返回值就是泛型类型}class InfoImpl implements Info<String>{ // 定义泛型接口的子类 private String var ; // 定义属性 public InfoImpl(String var){ // 通过构造方法设置属性内容 this.setVar(var) ; } public void setVar(String var){ this.var = var ; } public String getVar(){ return this.var ; }};public class GenericsDemo25{ public static void main(String arsg[]){ Info i = null; // 声明接口对象 i = new InfoImpl("李兴华") ; // 通过子类实例化对象 System.out.println("内容:" + i.getVar()) ; }};
2,泛型方法
泛型出了可以为类中的属性指定数据类型以外,也可以定义方法,泛型方法所在的类是否是泛型类并没有任何关系。
定义泛型方法
泛型方法中可以定义泛型参数,此时参数的类型就是传入数据的类型,使用格式:
class Demo{ public <T> T fun(T t){ // 可以接收任意类型的数据 return t ; // 直接把参数返回 }};public class GenericsDemo26{ public static void main(String args[]){ Demo d = new Demo() ; // 实例化Demo对象 String str = d.fun("李兴华") ; // 传递字符串 int i = d.fun(30) ; // 传递数字,自动装箱 System.out.println(str) ; // 输出内容 System.out.println(i) ; // 输出内容 }};
阅读全文
0 0
- 泛型的其他应用---------(3)
- 18---java中泛型03(泛型的其他应用)
- 【泛型】_泛型的其他应用笔记
- 【泛型】_泛型的其他应用笔记
- RecyclerView的其他应用
- 读写其他应用的SharedPreferences
- 删除其他应用的快捷方式
- 读写其他应用的SharedPreferences
- 启动其他应用的方式
- 枚举---枚举的其他应用
- numpy的其他应用介绍
- Training--与其他APP通信(3)-- 允许其他应用启动你的Activity
- 19---java中枚举04(枚举的其他应用)
- Android中编辑其他应用的SharedPreferences(一)
- Android中编辑其他应用的SharedPreferences(二)
- 如何卸载Centos自带的一些应用(Qt,和其他应用)
- BREW应用向其他平台的移植
- Delphi中DLL的其他应用
- 【每日一题-2】链表基础面试题
- 创建型:原型模式(Prototype)
- C# 软件间通讯方式之WM_COPYDATA
- if--else的练习,for练习,算法,金字塔,菱形打印
- 15.3Sum
- 泛型的其他应用---------(3)
- 404. Sum of Left Leaves
- Android 常用的控件
- smarty 遍历数组之foreach,section实例
- ZOJ
- Qt静态库制作
- hdu1237(表达式求值)
- ubuntu rc.local 无效 解决方案(转)
- [转] 如何用matlab生成服从混合高斯分布的随机数?