RT

解决方案 »

  1.   

    范型,使用这个类时编译器会提示你使用类似于 T<Object> t = new T<Object>();的方式
      

  2.   

    jdk1.5引用了C++的泛型,T可以是任意类型.
      

  3.   

    是在J2SE 5.0新加入的特性 "泛型"<转帖>
    [J2SE 5.0专题][2.1]泛型
    大凡用过C/C++的朋友对“泛型”这个词都不会陌生吧?我相信有过一些Java编码经验的朋友或多或少也遇到过使用集合类的方法时必须要手工做类型转换的情况。看下面的例子:import java.util.ArrayList;
    import java.util.Iterator;public class MyGenerics {    public static void main(String[] args) {
            useNonGenerics();
            useGenerics();
        }
        
        private static void useNonGenerics() {
            ArrayList aList = new ArrayList();
            aList.add(new Integer(7));
            aList.add(new Integer(17));
            int sum = 0;
            Iterator iter = aList.iterator();
            while (iter.hasNext()) {
                sum += ((Integer)iter.next()).intValue();
            }
            System.out.println(sum);
        }
        
        private static void useGenerics() {
            ArrayList<Integer> aList = new ArrayList<Integer>();
            aList.add(new Integer(7));
            aList.add(new Integer(17));
            int sum = 0;
            Iterator<Integer> iter = aList.iterator();
            while (iter.hasNext()) {
                sum += iter.next().intValue();
            }
            System.out.println(sum);
        }
    }在这个例子中我提供了两个不同方法来完成同样的事,例子本身有没有意义不重要,我只是想让你看到一些实际在Java中使用泛型的代码。泛型的好处在于它可以避免那些我们本不需要去考虑的类型转换,并且可以提供编译期的类型安全检查。(注意,在上面的例子中,如果不使用泛型,那么我们可以把iter.next()返回的对象转换成任意类型,然后调用那个类型的方法而不会抛出任何编译期异常)同时,泛型的引入也为模板类和模板方法的出现奠定了基础。如果有时间,建议大家把新的java.util.Collection的源码拿下来看一看,你完全可以实现自己的支持泛型的API。
      

  4.   

    不好用.不知道是我的实现有问题否?比如说 写一个Comparator的子类
    里面的比较方法
    public class NodeComparator<T> implements Comparator<T>{
    }public int compare(T o1, T o2) {
    //    if(T.class instanceof Node.class)              
    //    return ((String)o1).compareTo((String)o2);
    //   
       return ((String)o1).compareTo((String)o2);
      }因为是T  所以无法判断运类型.所以不能检查.但是 如果直接 转化为String类型是不安全的 对于一个非我需要的类进行比较