好处:将运行时期出现的ClassCastException转移到编译时期,让运行时期问题减少。避免了强制转换。 - import java.util.ArrayList;
- import java.util.Iterator;
- public class Test {
- public static void main(String[] args) {
- ArrayList<String> al= new ArrayList<String>();
- al.add("a");
- Iterator<String> it = al.iterator();
- while(it.hasNext()){
- String s = it.next();
- }
- }
- }
复制代码 9.泛型使用泛型格式:通过<>定义要操作的引用数据类型。
在使用JAVA提供的对象时,什么时候使用泛型?
其实<>就是用来接受类型的。当使用集合时,讲集合中要存储的数据类型作为参数传递到<>中。 - import java.util.Comparator;
- import java.util.Iterator;
- import java.util.TreeSet;
- public class GenericDemo {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- TreeSet<String> ts = new TreeSet<String>();
- ts.add("abc");
- Iterator<String> it=ts.iterator();
- while(it.hasNext()){
- String s= it.next();
- }
- }
- }
- class MyComparator implements Comparator<String>{
- @Override
- public int compare(String o1, String o2) {
- int num =new Integer(o1.length()).compareTo(new Integer(o2.length()));
- if(num==0){
- return o1.compareTo(o2);
- }
- return 0;
- }
- }
复制代码 10.泛型类当类中要操作的引用数据类型不确定的时候。早期定义Object完成扩展,现在定义泛型完成扩展。 - public class GenericDemo{
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Utils<Worker> u= new Utils<Worker>();
- u.setQ(new Worker());
- Worker w =u.getQ();
- }
- }
- class Worker{}
- class Utils<QQ> {
- private QQ q;
- public QQ getQ() {
- return q;
- }
- public void setQ(QQ q) {
- this.q = q;
- }
- }
复制代码
|