Java 零参数构造函数。为什么,在哪里?
我有一个构造器:Java 零参数构造函数。为什么,在哪里?,java,android,Java,Android,我有一个构造器: public class Question { String question; boolean correctAnswer; public Question(String question, boolean correctAnswer) { this.question = question; this.correctAnswer = correctAnswer; } } 在mainActivity中,我想显示问题,但我得到了零参数构造函数错误: p
public class Question {
String question;
boolean correctAnswer;
public Question(String question, boolean correctAnswer)
{
this.question = question;
this.correctAnswer = correctAnswer;
}
}
在mainActivity中,我想显示问题,但我得到了零参数构造函数错误:
public class MainActivity extends ActionBarActivity {
Button mYes;
Button mNo;
TextView mQuestion;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mYes = (Button)findViewById(R.id.button2);
mNo = (Button)findViewById(R.id.button);
mQuestion = (TextView)findViewById(R.id.textView);
//question list
ArrayList<Question> questions = new ArrayList<>();
//adding question
questions.add(first);
//show the question.
mQuestion.setText((CharSequence) questions.get(0));
}
//Creating question
Question first = new Question("Do i understand this code?", false);
公共类MainActivity扩展了ActionBarActivity{
巴顿迈斯;
按钮mNo;
文本视图mQuestion;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mYes=(按钮)findViewById(R.id.button2);
mNo=(按钮)findViewById(R.id.Button);
mQuestion=(TextView)findViewById(R.id.TextView);
//问题清单
ArrayList问题=新建ArrayList();
//添加问题
问题.加上(第一);
//展示问题。
setText((CharSequence)questions.get(0));
}
//创造问题
问题优先=新问题(“我是否理解此代码?”,错误);
我知道我必须在某个地方创建某种类型的空构造函数。可能回答了我的问题,但是我的英语不是最好的,我只是不知道如何实现我需要的代码。问题。获取(0)
返回类型为问题的对象。无法将其转换为字符序列
改变这个
mQuestion.setText((CharSequence) questions.get(0));
到
注意如果Question
类与MainActivity
不在同一个包中,那么要么将Question
的属性公开,要么为它们创建getter方法
还要确保您正在使用此代码
Question first = new Question("Do i understand this code?", false);
在questions.add(first);
中使用它之前,否则您将在mQuestion.setText(questions.get(0.question);
中获得NullPointerException
这是java。然后您首先创建de对象,然后您可以调用它。根据您的代码,on方法onCreate不会退出名为first的对象,因为这是在onCreate方法中创建的:
@Override
protected void onCreate(Bundle savedInstanceState) {
...
//Creating question
Question first = new Question("Do i understand this code?", false);
//question list
ArrayList<Question> questions = new ArrayList<>();
//adding question
questions.add(first);
//show the question.
mQuestion.setText((CharSequence) questions.get(0).getQuestion());
请发布错误消息的确切文本。另外,这是Java,不是C++注意ArrayList questions=new ArrayList();应该是new ArrayList();您在哪里有此代码Question first=new Question(“我理解此代码吗?”,false);
?您正在onCreate
中使用它。我添加了缺少的问题。错误不是说:无法将问题转换为java.lang.CharSequence。但是如果没有CharSequence,它将显示问题上未解决的方法。get(0)。请查看我的答案。它应该可以解决您的问题。
@Override
protected void onCreate(Bundle savedInstanceState) {
...
//Creating question
Question first = new Question("Do i understand this code?", false);
//question list
ArrayList<Question> questions = new ArrayList<>();
//adding question
questions.add(first);
//show the question.
mQuestion.setText((CharSequence) questions.get(0).getQuestion());
public String getQuestion() {
return this.question;
}