高手来,"String s[]=new String[0];"有意义吗?再看......
"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数组吗???上面语句意义何在?
------解决方案--------------------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
------解决方案--------------------it makes no sense! do you understand?
------解决方案--------------------Vector 是个变长的数组
new CharacterListener[0]
目的就是使之转换成一个固定长度的数组
------解决方案--------------------CharacterListener[] cl=(CharacterListener[])listener.toArray()
如果是这样
则可能报错
------解决方案--------------------String[] str = (String[]) result.toArray(new String[1]);即告诉Vector,我要得到的数组的类型。
java中的强制类型转换只是针对单个对象的,想要偷懒,将整个数组转换成另外一种类型的数组是不行的。