java - 在一个类中创建多个对象

标签 java java-me

我正在尝试创建一个类。让我们称之为问卷调查。在问卷中,我想实例化一些名为问题的类。 Questionnaire 的构造函数接受单词的字符串数组,对于每个单词,应该有一个 Question 类来接受它作为其构造函数的参数。换句话说,对于作为参数传递的每个字符串,我想创建一个问题。

我需要能够将问卷放在一个更大的类中,并且仍然调用问题类的方法。传递给问卷的数组大小也各不相同。当我不知道会有多少个类,以及如何从外部类引用它们时,我不知道如何将多个类放在另一个类中。如果数组的长度是固定的,我只是将问题创建为问题 1、问题 2、问题 3……但由于情况并非如此,我不再确定了。不过,我确实知道我想创建的问题类数量有上限。

编辑:我正在为此使用 J2ME CDLC 1.1 MIDP 2.0(它是手机应用程序的一部分),所以我的解决方案受到它提供的限制。

最佳答案

您不希望每个问题都有一个单独的变量 - 使用 List<Question>有一个变量引用一组问题:

public class Questionnaire
{
    private final List<Question> questions;

    public Questionnaire(String[] words)
    {
        questions = new ArrayList<Question>();
        for (String word : words)
        {
            questions.add(new Question(word));
        }
    }

    // Use questions here
}

编辑:如果您处于没有泛型的环境中,您可以使用非泛型形式,如下所示:

    private final List questions;

    public Questionnaire(String[] words)
    {
        questions = new ArrayList();
        for (String word : words)
        {
            questions.add(new Question(word));
        }
    }

或者如果你没有 List/ArrayList 则像这样:

    private final Vector questions;

    public Questionnaire(String[] words)
    {
        questions = new Vector();
        for (String word : words)
        {
            questions.add(new Question(word));
        }
    }

无论哪种情况,您都需要对每次访问进行强制转换。或者,您可以使用数组:

    private final Question[] questions;

    public Questionnaire(String[] words)
    {
        questions = new Question[words.length];
        for (int i = 0; i < words.length; i++)
        {
            questions[i] = new Question(word);
        }
    }

关于java - 在一个类中创建多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2255809/

相关文章:

java - 将JOGL打包成fat JAR

Java 桌面应用程序和 Paypal 集成

java - blackberry 的 j2me 配置和配置文件

multithreading - 工作线程无法更新 Motorola V3 上的 UI

java - 加密 Java MIDP 应用程序

java - 让 Guava ArrayListMultimap 工作

java - 为什么在发送 GET 请求时会出现错误 500?

java - 如何使用多值映射

Java EE应用程序是否可以在Java Micro版本上运行?

java-me - 如何在 lwuit TextField 或组合框中添加日历