Java 布尔数组实例化为 null
Java boolean array instantiating as null
我正在创建一个预填充了假值的布尔数组。我知道我不必声明错误值,因为它们是自动分配的,但是我一直在尝试不同的方法来尝试解决问题。
package com.bignerdranch.android.geoquiz;
import android.app.ActionBar;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class QuizActivity extends ActionBarActivity {
private static final String TAG = "QuizActivity";
private static final String KEY_INDEX = "index";
private Button mTrueButton;
private Button mFalseButton;
private Button mNextButton;
private Button mCheatButton;
private TextView mQuestionTextView;
private TrueFalse[] mQuestionBank = new TrueFalse[] {
new TrueFalse(R.string.question_oceans, true),
new TrueFalse(R.string.question_mideast, false),
new TrueFalse(R.string.question_africa, false),
new TrueFalse(R.string.question_americas, true),
new TrueFalse(R.string.question_asia, true),
};
private int mCurrentIndex = 0;
private boolean mIsCheater;
private boolean[] mCheatedAnswers = new boolean[] {false, false, false, false, false};
我在最后一行有一个断点,当程序在这里中断时,mCheatedAnswers 被实例化为 null。我不明白为什么我给了它一个布尔数组 - 有人知道为什么会这样吗?
当我在调试模式下检查时,前面的变量都分配了正确的值。
如果你把断点 放在最后一行 上,那么当它命中时,赋值还没有执行。
如果您在构造函数主体中放置一个断点 - 或者只是越过该行 - 您会发现该值已正确分配。 (请注意,仅使用 new boolean[5]
会更简单...... false
是默认值......请注意,使用 class 可能会更好,其中包括问和用户是否作弊。那么你只需要一个合集。)
我正在创建一个预填充了假值的布尔数组。我知道我不必声明错误值,因为它们是自动分配的,但是我一直在尝试不同的方法来尝试解决问题。
package com.bignerdranch.android.geoquiz;
import android.app.ActionBar;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class QuizActivity extends ActionBarActivity {
private static final String TAG = "QuizActivity";
private static final String KEY_INDEX = "index";
private Button mTrueButton;
private Button mFalseButton;
private Button mNextButton;
private Button mCheatButton;
private TextView mQuestionTextView;
private TrueFalse[] mQuestionBank = new TrueFalse[] {
new TrueFalse(R.string.question_oceans, true),
new TrueFalse(R.string.question_mideast, false),
new TrueFalse(R.string.question_africa, false),
new TrueFalse(R.string.question_americas, true),
new TrueFalse(R.string.question_asia, true),
};
private int mCurrentIndex = 0;
private boolean mIsCheater;
private boolean[] mCheatedAnswers = new boolean[] {false, false, false, false, false};
我在最后一行有一个断点,当程序在这里中断时,mCheatedAnswers 被实例化为 null。我不明白为什么我给了它一个布尔数组 - 有人知道为什么会这样吗?
当我在调试模式下检查时,前面的变量都分配了正确的值。
如果你把断点 放在最后一行 上,那么当它命中时,赋值还没有执行。
如果您在构造函数主体中放置一个断点 - 或者只是越过该行 - 您会发现该值已正确分配。 (请注意,仅使用 new boolean[5]
会更简单...... false
是默认值......请注意,使用 class 可能会更好,其中包括问和用户是否作弊。那么你只需要一个合集。)