假设我在一个oMapInput中存放了一个多维数组,假设为
com.ncs.iflow.engine.to.DynamicPerformerTO[][]
(维数可变化,com.ncs.iflow.engine.to.DynamicPerformerTO也是可变的)
传入的参数只可以是这个定义数组的字符串“com.ncs.iflow.engine.to.DynamicPerformerTO[][]”,假设它为sArrayDefine.如何在函数里初始化这个DynamicPerformerTO[][]呢?void initArray(int sArrayDefine, Map oMapInput)
{
   //现在的目的就是进行类似下面的初始化:
   //DynamicPerformerTO[][] = (DynamicPerformerTO[][])oMapInput.get("dynamicPerformer"); 
   //现在的问题是首先我需要对sArrayDefine进行分解,分为“com.ncs.iflow.engine.to.DynamicPerformerTO”和“[][]”
   //然后用class.forName("com.ncs.iflow.engine.to.DynamicPerformerTO")找到类,然后在根据“[][]”来知道维数,但是接下来我就不知道该怎么去进行初始化了。
}有没有人可以帮小弟一下?我实在是拿它没有办法了。

解决方案 »

  1.   

    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.lang.reflect.Array;import javax.imageio.ImageIO;public class T {
    public static void main(String[] args) throws ClassNotFoundException {
    String className = args[0];

    int[] dimensions = new int[args.length - 1];
    for (int i = 0; i < args.length-1; i++) {
    dimensions[i] = Integer.parseInt(args[i + 1]);
    } Class clazz = Class.forName(className);
    Object array = Array.newInstance(clazz, dimensions);

    System.out.println(array);
    }
    }