Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java J2ME BlackBerry从数组类创建实例_Java_Blackberry_Java Me_Java Micro Editon Sdk3.0 - Fatal编程技术网

Java J2ME BlackBerry从数组类创建实例

Java J2ME BlackBerry从数组类创建实例,java,blackberry,java-me,java-micro-editon-sdk3.0,Java,Blackberry,Java Me,Java Micro Editon Sdk3.0,有没有一种方法可以使用类似于 MyClass[].newInstance(); 我知道它抛出了一个实例化异常,但是有没有一种方法可以让我用类对象实例化一个表示其类型的数组?因为在J2ME中不可用,我想您需要一个循环来为每个对象执行此操作: private Object[] createArray(String fullClassName, int length) { Object[] objects = new Object[length]; try { Cla

有没有一种方法可以使用类似于

MyClass[].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=newmyclass[10]你可以使用这个想法,创建一个类,将数组中的对象复制/强制转换为另一种类型。相关?:第一个注释:我不知道这个类,(我是类型类的一个变量)。第二条评论:我正在使用J2ME。底线是不可能的。使用类的字符串化名称是这里的解决方案。但是,只有当我使用的是一个具体的类,如果数组是抽象的或接口,就没有办法获取数组组件类型来实例化它们。@danielrvt sgb,如果不想,您不必使用字符串名称。在我的示例中,可以将
createArray()
更改为将
类c
作为参数。但是,在某些地方,您需要决定创建一个具体的类。不能实例化抽象类或接口。有些东西必须决定抽象类的哪个子类,或者将创建接口的哪个实现。另外,请记住投票选出有用的答案。像这样的问题不会得到太多的关注,投票是确定答案的方法。谢谢
  Object[] array = createArray("mypackage.Widget", 10);
package mypackage;

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