0

我正在尝试为具有潜在答案选择和正确答案选择的琐事游戏初始化一系列问题。这是我的主要课程:

public class Lab82 {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    final int NUM_QUESTIONS = 10;
    Question[] questions = new Question[10];


}
}

这是琐事问题的课程:

 public class Question {
 //fields
 private String question;
 private String ans1;
 private String ans2;
 private String ans3;
 private String ans4;
 private int correctAns;

 /**
 * Constructor
 * @param question
 * @param ans1
 * @param ans2
 * @param ans3
 * @param ans4
 * @param correctAns 
 */
public Question(String question, String ans1, String ans2, String ans3, String ans4, int correctAns){
this.question = question;
this.ans1 = ans1;
this.ans2= ans2;
this.ans3 = ans3;
this.ans4 = ans4;
this.correctAns = correctAns;
}
}

我尝试在主要方法中输入它:

questions[0] = new Question("How old are you?", "Zero", "One", "Two", "Three", 2);

但收到此错误消息:

类 Question 中的构造函数 Question 不能应用于给定类型;必需:未找到参数:String,String,String,String,String,int 原因:实际参数列表和形式参数列表的长度不同

如何正确地将每个琐事问题的问题、答案选择和正确答案传递给 Question 构造函数?

4

3 回答 3

0

以下将起作用,但我猜您真的想添加真实数据,而不仅仅是空字符串。数据从何而来?

for (int x = 0; x < questions.length; x++)
{
    questions[x] = new Question("", "", "", "", 1);
}

因此,您可能希望分别填写每个问题,如

questions [0] = new Question("What is SO?", "Stack Overflow", "Say Oi", "Sasuages OK",                    "so", 1);
questions [1] = new Question("....", "...", "...", "...", "...", 1);
于 2013-11-15T02:30:44.317 回答
0

简单的方法是这样的:

   new Question("What's the time Mr Wolf?", "3 oclock", "4 oclock", "5 oclock", 
                "Dinner time!", 4);

但这不是一个好的解决方案,因为将问题和答案硬连接到代码中会出现问题。

  • 您必须重新编译才能添加/更改问题。
  • 它占用了太多内存……因为所有问答字符串都需要一直保存在内存中。
  • 您遇到了架构限制;例如方法的字节码限制。

更好的方法是根据需要加载 Q&A(从应用程序资源、文件、数据库、外部服务......)。

于 2013-11-15T02:30:55.203 回答
0

在 Class Lab82 的 main 方法中创建 Question 类型的新对象。

Question questionOne = new Question(questionOne, ans1, ans2, ans3, ans4, correctAns);

将上述对象传递给数组问题。

于 2013-11-15T02:32:01.123 回答