看文档经常看到Enum<E>不知道是什么意思?

解决方案 »

  1.   

    JDK5.0中新引入的一种机制。
    如果楼主看过C++的template的话,就应该知道这叫做 泛型。
    这种机制在于 原来的java的collections里面保存的是Object,如果要将其它类型的对象存入到collections当中就需要把其它类型转换为Object,如果要取出来就又要把相应的Object转换为原来的类型。
    泛型机制就在于将原来的弱类型转变为强类型。比如ArrayList<String>就表示存放String类型的ArrayList。
    但是这里注意Java的泛型实现是使用的“擦拭法”,即在代码层面上面实现了泛型,但是在JVM中并没有实现泛型。所以Java的泛型实际上是"假泛型".楼主可以参考IBM developerworks中的这篇文章:
    http://www-128.ibm.com/developerworks/cn/java/j-djc02113/
      

  2.   

    nirvana的解释就看懂前半部分(“ArrayList<String>就表示存放String类型的ArrayList”之前的)我还是不清楚这个泛型是干什么的,为什么会有这个概念??????还有Enum<E>、Class<T>具体是什么意思?
      

  3.   

    nirvana_li(东成西就,芝兰境界) 说得很详细
    我解释一下 就是说 你的ArrayList中存放的东西一定要是什么类型的.
    如果是ArrayList<String> 那么在ArrayList中存放的值一定都是String类型的
      

  4.   

    表示泛型,在C++中有同样的形式,如果楼主学过C++就应该清楚的,不过java支持泛型,在JDK1.5中才有的。
      

  5.   

    以前:
    ArrayList mylist = new ArrayList();
    这个时候使用mylist中能够存储的是object。如果想存放String类型就先将String转换为Object,以后取出值的时候,又要将Object转为String现在使用了泛型:
    ArrayList<String> mylist = new ArrayList()<String>;
    就已经将ArrayList类进行了参数化,表示它存储的就是String。使用泛型的一个目的就是 将“弱类型”转变成为了“强类型”,好处是增强了程序的静态类型检查。