【Java学习笔记】36:泛型的类型变量的限定
来源:互联网 发布:压缩包加密软件 编辑:程序博客网 时间:2024/05/22 03:16
首先,在泛型编程中的类型参数只能被实例化为引用类型的,而不能是基本类型的。
在这里借用extends关键字做抽象类型的限定,即便是要求这个抽象类型它实现了一个接口。
*对泛型类的限定
package day36;class MyInt implements Comparable<MyInt>{ int i; public MyInt(int i) { this.i = i; } @Override public String toString() { return i+""; } @Override public int compareTo(MyInt o) { if(this.i>o.i) return 1; else if(this.i<o.i) return -1; return 0; } }public class Test { public static void main(String[] args) { Integer[] i1={1,4,-5,17}; MyClass<Integer> m1=new MyClass<Integer>(); System.out.println(m1.max(i1)+","+m1.min(i1)); MyInt[] i2={new MyInt(3),new MyInt(-9),new MyInt(7),new MyInt(-10),new MyInt(8)}; MyClass<MyInt> m2=new MyClass<MyInt>(); System.out.println(m2.max(i2)+","+m2.min(i2)); }}//这个类必须实现了Comparable接口,即对其做了这样的限定class MyClass<T extends Comparable<T>>{ //获得数组中的最大值 public T max(T[] a){ T m=a[0]; for(T x:a) { if(x.compareTo(m)>0)//表示比m大 m=x; } return m; } //获得数组中的最小值 public T min(T[] a){ T m=a[0]; for(T x:a) { if(x.compareTo(m)<0)//表示比m小 m=x; } return m; }}
运行结果:
17,-5
8,-10
*对泛型方法的限定
package day36;class MyInt implements Comparable<MyInt>{ int i; public MyInt(int i) { this.i = i; } @Override public String toString() { return i+""; } @Override public int compareTo(MyInt o) { if(this.i>o.i) return 1; else if(this.i<o.i) return -1; return 0; } }public class Test { public static void main(String[] args) { //这种方式可以共用相同的Class,将泛型做的更彻底 MyClass m=new MyClass(); Integer[] i1={1,4,-5,17}; System.out.println(m.max(i1)+","+m.min(i1)); MyInt[] i2={new MyInt(3),new MyInt(-9),new MyInt(7),new MyInt(-10),new MyInt(8)}; System.out.println(m.max(i2)+","+m.min(i2)); }}//在普通类的内部建立泛型方法,并对方法本身作限定class MyClass{ //获得数组中的最大值 public <T extends Comparable<T>> T max(T[] a){ T m=a[0]; for(T x:a) { if(x.compareTo(m)>0)//表示比m大 m=x; } return m; } //获得数组中的最小值 public <T extends Comparable<T>> T min(T[] a){ T m=a[0]; for(T x:a) { if(x.compareTo(m)<0)//表示比m小 m=x; } return m; }}
运行结果:
17,-5
8,-10
阅读全文
0 0
- 【Java学习笔记】36:泛型的类型变量的限定
- Java泛型 类型变量的限定
- java 泛型变量的限定
- 8.4 类型变量的限定
- Java 自限定的类型
- 学习笔记---变量的类型
- java 泛型类型限定
- Java 泛型的限定
- Java 泛型的限定
- java学习笔记---String类型的变量“相等”
- 【Java学习笔记】基本类型变量的操作
- java泛型程序设计——通配符类型+通配符的超类型限定
- Java中super的限定作用和引用变量的强制类型转换
- Java核心技术卷I:基础知识(原书第8版):12.4 类型变量的限定
- 【学习笔记】python的变量类型
- java泛型程序设计——类型变量限定 + 泛型代码和虚拟机
- java学习笔记.02——泛型限定符
- Java的Variable Types变量类型-笔记
- Android Studio 程序打包流程
- 几种硬盘接口标准
- Android中shape的使用
- android时间戳转换成日期(与php后台),日期转换成时间戳小问题记录
- LintCode:M-带环链表
- 【Java学习笔记】36:泛型的类型变量的限定
- 编译动态库和静态库的Makefile模板
- 平衡二叉树的实现代码加详细注释
- opencv:批量读取一个文件夹下的图片,并转换成视频
- 倒计时
- Save and Load Your Keras Deep Learning Models
- webview中的img标签加载Android本地的图片
- 30岁后还能入IT行业吗?
- HTML5 canvas粒子烟花绽放动画