タグ付けされた質問 「nullpointerexception」

オブジェクトが必要な場合にアプリケーションがnullを使用しようとするとスローされるJava例外。

30
!= nullステートメントの回避
object != null避けるためにたくさん使いますNullPointerException。 これに代わるものはありますか? たとえば、私はよく使用します: if (someobject != null) { someobject.doCalc(); } 以下のために、このチェックNullPointerExceptionのためにsomeobject上記のコード内のオブジェクト。 受け入れられた回答が古くなっている可能性があることに注意してください。最新のアプローチについては、https://stackoverflow.com/a/2386013/12943を参照してください。


22
どの@NotNull Javaアノテーションを使用すればよいですか?
NullPointerExceptionsを回避するために、コードを読みやすくするだけでなく、IDEコードインスペクションや静的コード分析(FindBugsおよびSonar)などのツールを使用したいと考えています。ツールの多くはお互いの@NotNull/ @NonNull/ @Nonnullアノテーションと互換性がないように見え、すべてのツールを私のコードにリストすると読みにくくなります。どれが「最高」であるかの提案はありますか?これが私が見つけた同等の注釈のリストです: javax.validation.constraints.NotNull 静的分析ではなく、ランタイム検証のために作成されました。 ドキュメンテーション edu.umd.cs.findbugs.annotations.NonNull Findbugs静的分析で使用されるため、Sonar(現在はSonarqube)の ドキュメント javax.annotation.Nonnull これはFindbugsでも機能する可能性がありますが、JSR-305は非アクティブです。(参照:JSR 305のステータスは?) ソース org.jetbrains.annotations.NotNull IntelliJ IDEA IDEが静的分析に使用します。 ドキュメンテーション lombok.NonNull Project Lombokでコード生成を制御するために使用されます。 標準がないため、プレースホルダアノテーション。 ソース、 ドキュメント android.support.annotation.NonNull Androidで利用可能なマーカーアノテーション。support-annotationsパッケージドキュメントで提供 org.eclipse.jdt.annotation.NonNull 静的コード分析ドキュメントのためにEclipseによって使用され ます

18
Springの@Autowiredフィールドがnullになるのはなぜですか?
注:これは、一般的な問題に対する標準的な回答となることを目的としています。 フィールド@Service(MileageFeeCalculator)を持つSpring クラス()があり@AutowiredますrateServiceが、フィールドはnull使用しようとしたときのものです。ログには、MileageFeeCalculatorBeanとMileageRateServiceBeanの両方が作成されていることが示されていますが、サービスBeanでメソッドNullPointerExceptionを呼び出そうとすると、常にを取得しmileageChargeます。Springがフィールドを自動配線しないのはなぜですか? コントローラクラス: @Controller public class MileageFeeController { @RequestMapping("/mileage/{miles}") @ResponseBody public float mileageFee(@PathVariable int miles) { MileageFeeCalculator calc = new MileageFeeCalculator(); return calc.mileageCharge(miles); } } サービスクラス: @Service public class MileageFeeCalculator { @Autowired private MileageRateService rateService; // <--- should be autowired, is null public float mileageCharge(final int miles) { return …

26
IllegalArgumentExceptionまたはnullパラメータのNullPointerException?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 プロパティの単純なセッターメソッドnullがあり、この特定のプロパティには適していません。私は常にこの状況で引き裂かれました:IllegalArgumentException、またはをスローする必要がありNullPointerExceptionますか?javadocsからは、どちらも適切と思われます。何らかの理解された基準はありますか?それとも、これはあなたが好きなことをすべきものの1つにすぎず、両方とも本当に正しいのですか?

10
StackTraceがないJavaのNullPointerException
JavaコードのインスタンスでをキャッチしましたNullPointerExceptionが、StackTrace(基本的にはを呼び出すThrowable.printStackTrace())をログに記録しようとすると、次のようになります。 java.lang.NullPointerException 他の誰かがこれに遭遇しましたか?「java nullポインターが空のスタックトレース」をグーグルで試しましたが、このようなことは何も見つかりませんでした。

12
Collectors.toMapのJava 8 NullPointerException
Java 8 は、値の1つが「null」の場合にCollectors.toMapaをスローしNullPointerExceptionます。私はこの振る舞いを理解していません、マップは問題なく値としてnullポインターを含むことができます。値をnullにできない正当な理由はありますCollectors.toMapか? また、これを修正するためのJava 8の優れた方法はありますか、それとも、従来のforループに戻す必要がありますか? 私の問題の例: import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; class Answer { private int id; private Boolean answer; Answer() { } Answer(int id, Boolean answer) { this.id = id; this.answer = answer; } public int getId() { return id; } public void setId(int id) { …

4
Optional.ofNullableではなくOptional.ofを使用する理由
Java 8 Optionalクラスを使用する場合、オプションで値をラップする方法は2つあります。 String foobar = <value or null>; Optional.of(foobar); // May throw NullPointerException Optional.ofNullable(foobar); // Safe from NullPointerException をOptional.ofNullable使用する唯一の安全な方法は理解できるが、OptionalなぜOptional.of存在するのか。Optional.ofNullable 常に使用して、常に安全な側にいませんか?


11
nullのない言語の最良の説明
プログラマーがnullエラー/例外について不平を言っているとき、誰かがnullなしで何をするかを尋ねられます。 私はオプションタイプのクールさについていくつかの基本的な考えを持っていますが、それを最もよく表現する知識や言語スキルがありません。何が偉大な私たちはその人の方を指すことができると平均プログラマに親しみの方法で書かれた以下の説明は? 参照/ポインタがデフォルトでnull可能になるのは望ましくない 次のようなnullのケースを簡単にチェックするための戦略を含む、オプションタイプの仕組み パターンマッチングと モナディック内包表記 メッセージを食べないなどの代替ソリューション (私が逃した他の側面)

8
なぜObjects.requireNonNull()を使用する必要があるのですか?
Oracle JDKの多くのJava 8メソッドはを使用することに注意しましたObjects.requireNonNull()。これNullPointerExceptionは、指定されたオブジェクト(引数)がnull。 public static <T> T requireNonNull(T obj) { if (obj == null) throw new NullPointerException(); return obj; } しかしNullPointerException、とにかくスローされますnullオブジェクトが逆参照。では、なぜこの余分なnullチェックを実行してスローする必要があるの NullPointerExceptionでしょうか。 1つの明白な答え(または利点)は、コードを読みやすくすることであり、私も同意します。Objects.requireNonNull()メソッドの最初に使用する他の理由を知りたいと思ってい ます。

12
NullPointerExceptionとは何ですか?どのように修正しますか?
この質問の答えはコミュニティの努力です。この投稿を改善するには、既存の回答を編集してください。現在、新しい回答や相互作用を受け入れていません。 StackаэтотвопросестьответынаStack Overflowнарусском:ЧтотакоеNull Pointer Exceptionикакегоисправить? ヌルポインター例外(java.lang.NullPointerException)とは何ですか? プログラムを途中で終了させる原因となる例外を停止するために、原因を特定するためにどのメソッド/ツールを使用できますか?

8
Android-「戻る」ボタンをオーバーライドして、アクティビティが完了()しないようにする方法は?
現在、アクティビティが表示されているときに、通知バーにも表示されるアクティビティがあります。 これは、ユーザーがホームを押してアクティビティがバックグラウンドにプッシュされると、通知を介してアクティビティに戻ることができるようにするためです。 この問題は、ユーザーが戻るボタンを押すと発生しますが、アクティビティは破棄されますが、ユーザーが押し戻して通知を介してアクティビティにアクセスできるようにしたいため、通知は残ります。しかし、ユーザーがこれを試行すると、古いアクティビティを取り戻すのではなく、新しいアクティビティを開始しようとしているとNullポインタが表示されます。 したがって、基本的には、[戻る]ボタンを[ホーム]ボタンとまったく同じように動作させたいので、これまでに試した方法を次に示します。 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5 && keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { Log.d("CDA", "onKeyDown Called"); onBackPressed(); } return super.onKeyDown(keyCode, event); } public void onBackPressed() { Log.d("CDA", "onBackPressed Called"); Intent setIntent = new Intent(Intent.ACTION_MAIN); setIntent.addCategory(Intent.CATEGORY_HOME); setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(setIntent); return; …

8
アンドロイド。フラグメントgetActivity()がnullを返すことがある
開発者コンソールのエラーレポートで、NPEの問題があるレポートが表示されることがあります。コードの何が問題なのか理解できません。エミュレーターと私のデバイスアプリケーションはforceclosesなしで正常に動作しますが、一部のユーザーは、getActivity()メソッドが呼び出されたときにフラグメントクラスでNullPointerExceptionを受け取ります。 アクティビティ pulic class MyActivity extends FragmentActivity{ private ViewPager pager; private TitlePageIndicator indicator; private TabsAdapter adapter; @Override public void onCreate(Bundle savedInstanceState) { pager = (ViewPager) findViewById(R.id.pager); indicator = (TitlePageIndicator) findViewById(R.id.indicator); adapter = new TabsAdapter(getSupportFragmentManager(), false); adapter.addFragment(new FirstFragment()); adapter.addFragment(new SecondFragment()); indicator.notifyDataSetChanged(); adapter.notifyDataSetChanged(); // push first task FirstTask firstTask = new FirstTask(MyActivity.this); …

8
三項演算子では許可されているが、ifステートメントでは許可されていないintとしてnullを返す
次のスニペットの簡単なJavaコードを見てみましょう。 public class Main { private int temp() { return true ? null : 0; // No compiler error - the compiler allows a return value of null // in a method signature that returns an int. } private int same() { if (true) { return null; // The same …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.