メンバー変数 mTest が null であるため、以下のクラスでオブジェクトを作成した後、NullPointerException が確実に発生します。
public class SettingsActivity extends PreferenceActivity {
private String mTest;
// the setter is not being called after the object is created
public void setTest(String test) {
mTest = test;
}
// ok, the activity is starting and will crash
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
mTest.replace("a", "b");
}
}
ある活動で、
Intent intent = new Intent(this, SettingsActivity.class);
// we forgot to set the member variable...
startActivity(intent);
ヌル ポインタの参照を検出するために SonarQube と Android Studio を使用していますが、どちらも上記の問題を検出できません。何か提案はありますか?プログラマーがこれらのバグをコーディングするべきではないことはわかっていますが、修正するよりも検出することに関心があります。
ありがとう!