【问题标题】:Java boolean array instantiating as nullJava 布尔数组实例化为 null
【发布时间】:2015-02-21 21:57:03
【问题描述】:

我正在创建一个预先填充了错误值的布尔数组。我知道我不必声明错误值,因为它们是自动分配的,但是我一直在尝试不同的方法来尝试解决问题。

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 被实例化为空。我不明白为什么我给了它一个布尔数组 - 有人知道为什么会这样吗?

当我在调试模式下检查之前的变量时,它们都分配了正确的值。

【问题讨论】:

    标签: java android boolean


    【解决方案1】:

    如果你把断点放在最后一行,那么当它命中时,赋值还没有执行。

    如果您在构造函数主体中放置一个断点 - 或者只是越过该行 - 您会发现该值已正确分配。 (使用new boolean[5] 会更简单,请注意...false 是默认值...请注意,最好有一个包含问题的课程 用户是否作弊。那么你只需要一个集合。)

    【讨论】:

    • 啊,谢谢。是的,我只是宣布错误,因为当时没有宣布它们似乎不起作用。换班的好建议——我没想到
    猜你喜欢
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多