浏览 5871 次
锁定老帖子 主题:泛型的"另类"应用
精华帖 (0) :: 良好帖 (1) :: 新手帖 (3) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-02-28
最后修改:2011-02-28
public static <T> void doxx(T t);
public class Test<T>{}
boolean )
/** 实现一个简单的数组位置的交换 */ public static <T> void test1(T arr[], int i, int j) { T temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } /* 实现数组的倒序 */ public static <T> void test2(T arr[]) { int startindex = 0; int endindex = arr.length - 1; for (;;) { if (startindex >= endindex) { break; } T temp = arr[startindex]; arr[startindex] = arr[endindex]; arr[endindex] = temp; startindex++; endindex--; } } 那么我们在main方法中应该怎么调用呢,特别注意必须是应用数据类型 public static void main(String[] args) { Integer arr[] = { 1, 2, 3, 4 }; // test1(arr,0,2);? 怎么使用呢?引用数据类型 test2(arr); for (int ar : arr) { System.out.print("[" + ar + "," + "]"); } } 只定义两个变量换值 public static void testChange() { int i = 10; int j = 111; // i=11 j=10; /* * i=i+j; j=i-j; i=i-j; * * System.out.println(i+" "+j); */ /* * 1001 i 1100 j ------- 0101 i 1100 j ----- 1001 j 0101 i 1100 i * * * * 0101 i 1001 i ------- 1100 j */ i = i ^ j; // i j = i ^ j; // j i = i ^ j; System.out.println(i + " " + j); }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-03-01
最后修改:2011-03-02
java 的泛型还有更有意思的用法,比如声明这样的方法:
public static <T,U> T getByIdx(T[] a, U b){ 调用时的代码为: String name = ArrayAlg.<String, Date>getByIdx(names,new Date()); 或者隐式的: String name1 = ArrayAlg.getByIdx(names,"GameOver"); 有时必须显式的指明参数类型 我原来也整理过三篇《步步理解 JAVA 泛型编程》系列,还有诸如 extends, ? 等形式: 1. http://unmi.cc/understand-java-generic-1 2. http://unmi.cc/understand-java-generic-2 3. http://unmi.cc/understand-java-generic-3 |
|
返回顶楼 | |
发表时间:2011-03-01
又学习了
|
|
返回顶楼 | |
发表时间:2011-03-01
喜欢泛型!
很不错的帖子! (还可以再 深究下! 泛型参数 ,泛型方法,extend super ? 等! ) |
|
返回顶楼 | |
发表时间:2011-03-01
泛型很不错啊,值得学习
|
|
返回顶楼 | |
发表时间:2011-03-02
没看出另类在哪呀?
|
|
返回顶楼 | |
发表时间:2011-03-02
又是“标题党”
|
|
返回顶楼 | |
发表时间:2011-03-02
bingoohuang 写道 又是“标题党” 首先另类我加了引号希望不要误解,其次大概是层次级别比较高,所以觉得贴比较菜 哈哈 |
|
返回顶楼 | |
发表时间:2011-03-08
受教啊!其实大家么必要那么深究。。。
|
|
返回顶楼 | |