Fra*_*ank 4 java arrays vector
我使用下面的代码尝试创建一个字符串向量数组,我希望有一个包含3个项目的数组,每个项目都是一个字符串向量:
Vector<String> Result_Vector_Array[]=new Vector<String>[3];
Run Code Online (Sandbox Code Playgroud)
但NB强调该行为错误(通用数组创建),有什么不对?这样做的正确方法是什么?我知道也有Arraylist,但它没有同步,所以我想使用矢量.
由于类型擦除时,JVM不知道在运行时,你有一个Vector的String.它能做的最好就是创建一个'原始'矢量.它不能保证所有Vectors实际上都包含Strings.这就是您从IDE收到警告的原因.
解决这个问题的一种方法是,正如jgubby建议的那样.另一个是将s List放入Vectors而不是数组.
但是,更重要的是,为什么阵列只有3个项目?创建一个有三个字段的类可以放入你的更好Vector吗?有三个项目,这不是太多的工作,你得到额外的好处,你可以给三个元素中的每一个一个有用的名称,这将使你的代码更清晰.
此外,由于Java 6中,存在许多有用的新的同步的List实现方式中,这可能会执行超过更好Vector,如CopyOnWriteArrayList,或包裹经常List在Collections.synchronizedList.
你不能创建这样的数组,这样做:
Vector<String> Result_Vector_Array[] = (Vector<String>[]) new Vector[3];
Run Code Online (Sandbox Code Playgroud)
我建议采用不同的方法 - 像这样的容器数组通常很难使用,并且无助于理解代码.
PS还值得注意的是java命名约定
Vector<String> resultVectorArray[] = (Vector<String>[]) new Vector[3];
Run Code Online (Sandbox Code Playgroud)
并且通常不会在名称中包含类型(我怀疑这将是有争议的!),为什么不把它称为'结果'并让类型系统担心类型?
| 归档时间: |
|
| 查看次数: |
29583 次 |
| 最近记录: |