Java泛型方法定义及泛型类型推断
2015-04-30 22:46
260 查看
泛型的推断
传入一个数组,交换其中的两项:
定义泛型时限定类型:
上面代码要求T要是Object的子类,这其实是废话,如果把Object改为Number则编译时上面的两个方法都会报错,因为String和Book类都不是Number的子类。
@Test public void test3(){ //类型推断时使用两个类型的最小公倍数 int x1 = add(3,4); Number x2 = add(3.5,4); Object obj = add(3,"abc"); } //在返回类型前加上<T> public <T> T add(T x,T y){ return x; }
传入一个数组,交换其中的两项:
@Test public void test4(){ String[] result = swap(new String[]{"abc","xyz","999"}, 1, 2); for(String s:result){ System.out.println(s); } Book[] bs = swap(new Book[]{new Book("三国演义","罗贯中"),new Book("水浒传","施耐庵"),new Book("红楼梦","曹雪芹")}, 0, 2); for(Book b:bs){ System.out.println(b.getName()+","+b.getAuthor()); } //以下做法错误,T不可以为基本类型 //int[] arr = swap(new int[]{1,2,3},1,2); } //在返回类型前加上<T> public <T> T[] swap(T[] a,int i,int j){ T temp = a[i]; a[i] = a[j]; a[j] = temp; return a; }
定义泛型时限定类型:
@Test public void test4(){ String[] result = swap(new String[]{"abc","xyz","999"}, 1, 2); for(String s:result){ System.out.println(s); } Book[] bs = swap(new Book[]{new Book("三国演义","罗贯中"),new Book("水浒传","施耐庵"),new Book("红楼梦","曹雪芹")}, 0, 2); for(Book b:bs){ System.out.println(b.getName()+","+b.getAuthor()); } //以下做法错误,T不可以为基本类型 //int[] arr = swap(new int[]{1,2,3},1,2); } //在返回类型前加上<T> public <T extends Object> T[] swap(T[] a,int i,int j){ T temp = a[i]; a[i] = a[j]; a[j] = temp; return a; }
上面代码要求T要是Object的子类,这其实是废话,如果把Object改为Number则编译时上面的两个方法都会报错,因为String和Book类都不是Number的子类。
相关文章推荐
- Java泛型方法定义及泛型类型推断
- Java泛型方法定义及泛型类型推断
- Java泛型方法定义及泛型类型推断
- java泛型学习-自定义泛型方法与类型推断总结
- java泛型-自定义泛型方法与类型推断总结
- Java8中对泛型目标类型推断方法的改进
- C#编译器对泛型方法调用作类型推断的奇怪问题
- 自定义泛型方法的练习与类型推断总结
- Java泛型总结之定义泛型接口、类和类型通配符
- [bxd学习java基本点]13泛型类,泛型方法,当定义二种类型的泛型方法时,用迭代器的方法
- 泛型(Generic):了解泛型、泛型的应用、?通配符和泛型的限定、泛型方法和类型推断、泛型类、用反射获得实际
- 泛型方法与类型推断
- 自定义泛型方法及其应用和类型参数的类型推断
- 当泛型方法推断,扩展方法遇到泛型类型in/out时。。。
- java泛型 generics --- 第二部分 泛型方法 限制类型参量 泛型方法,限制类型参量
- 41_自定义泛型方法的练习与类型推断总结
- [bxd学习java基本点]13泛型类,泛型方法,当定义二种类型的泛型方法时,用迭代器的方法
- C#定义泛型方法错误-类型“T”必须是引用类型才能用作泛型类型或方法“System.Data.Linq.Table<TEntity>”中的参数“TEntity”
- java泛型程序设计——定义简单泛型类+泛型方法
- C#编译器对泛型方法调用作类型推断的奇怪问题