"String s[]=new String[0];"有意义吗?难道表示分配长度为0的String数组吗?再看若listener定义为:Vector listener=new Vector(),Characterlistener是自定义的观察者.CharacterListener[] cl=(CharacterListener[])listener.toArray(new CharacterListener[0]);谁能告诉我上面的语句做了什么,最重要的是其中的"new Characterlistener[0]"有意义吗?这表示分配了一个长度为0的Characterlistener数组吗???上面语句意义何在?

解决方案 »

  1.   

    String[] s=new String[0] 的确没有什么意思,就是将s引向一个长度为0的String类型数组CharacterListener[] cl=(CharacterListener[])listener.toArray(new CharacterListener[0]);
    1,声明一个CharacterListener数组类型c1
    2,将listener转化为一个长度为0的CharacterListener数组,并把这个数组强制类型转化为CharacterListener
    3,把这个数组引用给c1
      

  2.   

    it makes no sense! do you understand?
      

  3.   

    Vector 是个变长的数组
    new CharacterListener[0]
    目的就是使之转换成一个固定长度的数组
      

  4.   

    CharacterListener[] cl=(CharacterListener[])listener.toArray()
    如果是这样
    则可能报错
      

  5.   

    String[] str = (String[]) result.toArray(new String[1]);即告诉Vector,我要得到的数组的类型。  java中的强制类型转换只是针对单个对象的,想要偷懒,将整个数组转换成另外一种类型的数组是不行的。