急切一些不常见的代码
private List<DBWriter> lst= new ArrayList<DBWriter>();
到底如何理解,前面是list ,后面是arraylistDBWriter是一个线程类
public class dDBWriter extends Thread 
(代码里面是一个延迟时间的代码)很难接受这种表达方式?

解决方案 »

  1.   

    ArrayList 实现了List接口 = =!
      

  2.   

    List是接口,能生成接口的对象吗?不行,所以用它的子类ArrayList来实现,至于里面有DBWriter,这是泛型,表明这个List中的对象类型都是类DBWriter的对象
      

  3.   

    Please see this :for (Iterator<Entry<UpdateVO, List<UpdateVO>>> it = chOMOMap.entrySet().iterator(); 
    it.hasNext();) {How to understand?
      

  4.   

    Iterator 是社么(迭代器?)如何理解for (Iterator <Entry <UpdateVO, List <UpdateVO>>> it = chOMOMap.entrySet().iterator(); 
    it.hasNext();) { 
      

  5.   


    确实,这个时JAVA的多态,楼主也可以看下引用,借口不能产生对象,用子类可以实现,<DBWriter>是泛型,是一种保护,就是让List的对象都是这个类型
      

  6.   

    private List <DBWriter> lst= new ArrayList <DBWriter>(); 其实这种写法很好,因为如果在现实中发现ArrayList不怎么实用,那么只要修改new ArrayList<DBWriter>()成你想要的类型就可以了,别的地方基本上都不用修改的(当然你要保证没有类似:ArrayList<..>list = (ArrayList<..>)lst的写法!)
      

  7.   

    List是接口,不能生成对象,这句话正确。
    ArrayList是它的子类?你们就不要误人子弟了啊。
      

  8.   

    第一:java提倡面向接口编程,举一个例子:现在你数据结构用的是ArrayList,而对外暴露的是List的方法,假如某一天你在refator的时候发现LinkedList更合适,那么你不需要更改对外暴露的方法,只需要更改他的一个实现即可。这样侵入性或者耦合性更低。
    第二:是泛型
    假如不用泛型的话,你需要用强制类型:例如以下代码:
    用了泛型:List<String> list = new ArrayList<String>();
    list.add("str");
    String str = list.get(0);不用泛型:List list = new ArrayList();
    list.add("str");
    String str = (String)list.get(0);
    或者
    String str = list.get(0).toString();
      

  9.   

    这是java 多态的应用,楼主应该补补基础知识,呵呵
      

  10.   


    呵呵,手误,ArrayList是List的实现类
      

  11.   

    java的多态; 父类类型,子类对象;对于接口同样使用;;;
      

  12.   

     List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的方式。这里的有序不是指排序,而是只每个元素都有自己的位置。   
      ArrayList和LinkedList都是实现这个接口的类   
    楼主基础很重要