J2ME BlackBerry从数组类创建实例



有没有一种方法可以使用之类的东西从Class对象动态创建数组

MyClass[].newInstance();

我知道它抛出了一个InstantiationException,但有没有办法用Class对象实例化一个指示其类型的数组?

由于java.lang.reflect.Array.newInstance()在J2ME中不可用,我认为您需要一个循环来为每个对象执行此操作:

private Object[] createArray(String fullClassName, int length) {
    Object[] objects = new Object[length];
    try {
        Class c = Class.forName(fullClassName);
        for (int i = 0; i < objects.length; i++) {
            objects[i] = c.newInstance();
        }
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    } catch (InstantiationException e) {
        e.printStackTrace();
    }
    return objects;
}

记住要完全限定名称(如果您使用字符串化类名):

  Object[] array = createArray("mypackage.Widget", 10);

带有

package mypackage;
public class Widget {
    public int foo() {
        return 5;
    }
}

请注意,getConstructor()方法在BlackBerry类中不可用,因此您只能使用无参数构造函数创建对象

相关内容

  • 没有找到相关文章

最新更新