标签:强制类型转换 使用 block 通用 注意 实例 没有 entry ati
Java1.5中引入泛型,允许在定义类、接口时,通过一个标识来表示类中某个属性的类型或是某个方法的返回值及参数类型。类型参数在使用时确定。
ArrayList<Integer> list = new ArrayList<>();//Java7后,类型推断
这样在编译时就会进行类型检查,也避免了强制类型转换。
Iterator<Integer> iterator = list.iterator();
while(iterator.hasNext()){
iterator.next();
}
Set<Map.Entry<String, Integer>> entry = map.entrySet();
public class MyClass implements Comparable<MyClass>{
@override
public int compareTo(MyClass o){
...
}
}
比较时不需要进行类型判断。
定制排序同理
public class MyClass<T>{
//类的内部结构就可以使用类的泛型
}
public class Son1 extends Father<Integer>{
//子类没有泛型
}
public class Son2<T> extends Father<T>{
//子类仍然是泛型类
}
注意:
public static <E> List<E> myMethod(E[] arr){
}
注意:
List<Object> list1 = null;
List<String> list2 = null;
List<?> list = null;
list = list1;
list = list2;
print(list1);
print(list2);
public void print(List<?> list){
Iterator<?> iterator = list.iterator();
...
}
可以使用通配符作为泛型的通用父类,实现多态。
标签:强制类型转换 使用 block 通用 注意 实例 没有 entry ati
原文地址:https://www.cnblogs.com/xiafrog/p/14289272.html