java中泛型有什么用
补充知识:泛型
马克-to-win:从jdk1.5以后,java用<>来限制存入集合容器的对象的类型必须是<>中规定好的。
例:4.1
import java.util.*;
public class TestMark_to_win {
public static void main(String args[]) {
/* the following list can only accept Integer type. */
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(3);
list.add(2);
list.add(1);
list.add(2);
Iterator iter = list.iterator();
while (iter.hasNext()) {
System.out.println(iter.next());
}
int length = list.size();
for (int i = 0; i < length; i++) {
System.out.println(list.get(i));
}
}
}
result is:
1
3
2
1
2
1
3
2
1
2
下面类旁边的泛型说明类中要用到自己定义的新类型。
马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。
public class MyClass<MyType> {
private MyType t;
private void set(MyType t) {
this.t = t;
}
public MyType get() {
return t;
}
public static void main(String[] args) {
MyClass<Integer> myInt = new MyClass<Integer>();
myInt.set(5);
Integer intRes = myInt.get();
System.out.println("返回 : " + intRes);
MyClass<String> myStr = new MyClass<String>();
myStr.set("马克-to-win");
String strRes = myStr.get();
System.out.println("返回 : " + strRes);
}
}
结果:
返回 : 5
返回 : 马克-to-win
泛型的继承:(和大数据的Mapper有关,见WordCount)
class Father<T> {
public void test(T t) {
;
}
}
class Child extends Father<String> {
public void test(String t) {
;
}
}
public class Test2 {
public static void main(String[] args) {
}
}