将一种类型的数组转换为子类型的数组

Dav*_*rks 4 java oop

我想将数组从一种类型转换为另一种类型.如下所示,我遍历第一个数组中的所有对象并将它们转换为第二个数组类型.

但这是最好的方法吗?有没有一种方法不需要循环和铸造每个项目?

public MySubtype[] convertType(MyObject[] myObjectArray){
   MySubtype[] subtypeArray = new MySubtype[myObjectArray.length];

   for(int x=0; x < myObjectArray.length; x++){
      subtypeArray[x] = (MySubtype)myObjectArray[x];
   }

   return subtypeArray;
}
Run Code Online (Sandbox Code Playgroud)

thr*_*one 9

你应该可以使用这样的东西:

Arrays.copyOf(myObjectArray, myObjectArray.length, MySubtype[].class);
Run Code Online (Sandbox Code Playgroud)

然而,无论如何,这可能只是在引擎盖下循环和铸造.

看到这里.

  • 是的,这可能就是这样做的方式.我本来就要张贴这个. (2认同)