繁体   English   中英

J2ME BlackBerry从数组类创建实例

[英]J2ME BlackBerry creating instance from array class

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

MyClass[].newInstance();

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

由于J2ME中不提供java.lang.reflect.Array.newInstance() ,因此我认为您需要一个循环才能对每个对象执行此操作:

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;
    }
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM