問題タブ [non-nullable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
364 参照

vb.net - VB.NETで型をnull可能から非null可能に変換する方法は?

現在、null 可能なジェネリック型があり、null 可能かどうかを確認できます。ただし、null 非許容型を取得する方法が見つかりません。これが私がやりたいことです:

たとえば、nullableType が Date? の場合、「GetNonNullableType」関数で Date を返すようにしたい。Integer? の場合、関数は Integer を返します。

0 投票する
2 に答える
54 参照

c# - switch を使用したクラス宣言は、コードが int の if ステートメントで常に true を返すという警告を表示しますが、false の場合のコードも機能します

カスタム クラスを使用する場合、int を受け取るスイッチがあります。次に、switch は、num を持つケースと持たないケースがあるクラスを埋めます。int は、アプリケーション内の事実上どこにでも配置できますが、場合によっては int を持たないことがあります。newClass が表示されるとき、ユーザーは番号がないものを確認する必要があります。以下のコードは正常に動作しますが、次の警告を削除する必要があります: 「値の型newClass.numを null と比較した結果はtrue" であり、ステートメントの偽の部分については "到達不能なコードが検出されました"。

クラスの nullReferenced 部分をテストするために使用できる方法またはベスト プラクティスはありますか? このタイプの状況は何と呼ばれますか (つまり、null を許容しない参照、nullReference テスト) (...何を検索すればよいかわからないため)?

0 投票する
2 に答える
457 参照

c# - C# Null 許容と Null 非許容の DateTime タグ

これは日付と時刻に関する壮大な物語です。

Created は null 非許容の DateTimeOffset 変数です Updated は null 許容の DateTimeOffset 変数です

両方の値が適切に作成され、DB に存在し、ビューに渡されました。したがって、これらの値は両方とも次の場所で使用できる必要があります。<div class="row">@Html.Label(Model.Created.Value.ToString("MMMM, dd yyyy hh:mm tt"))</div> <div class="row">@Html.Label(Model.Updated.Value.ToString("MMMM, dd yyyy hh:mm tt"))</div>

ただし、2 番目 (更新済み) は問題なく、最初 (作成済み) はエラーを引き出します。

.value 部分で発生します。なぜ一方は大丈夫で、もう一方は大丈夫ではないのですか?変数のnull可能性は、それが受け入れられることとどのような関係がありますか? または、メソッドを「指定されたコンテキストでは無効」にしますか?

私のモデル:

0 投票する
3 に答える
2883 参照

java - Android: @NonNull にもかかわらず NullPointerException

これによりコンパイラチェックが発生すると仮定して、パラメーターがnullにならないように注釈を使用しています。

ただし、このコードを実行すると、この行で正確に NullPointerException が発生します

では、注釈のポイントは何ですか?

このように追加のチェックを書くと、さらにわかりにくくなります

Android Studio は、チェックは役に立たないと警告しています。

更新: 完全なコール スタック:

0 投票する
2 に答える
640 参照

java - null 分析アノテーション パッケージの違いは何ですか?

質問どの @NotNull Java アノテーションを使用する必要がありますか? 時代遅れであり、やや意見に基づいています。それ以来、新しい IDE とともに Java 8 が登場しました。

Java 8はJSR 308の統合により型注釈を許可しますが、何も付属していません。JSR 308 Explained: Java Type Annotations by Josh Juneauから:

JSR 308、Annotations on Java Types は、Java SE 8 の一部として組み込まれています。
...
コンパイラ チェッカーを記述して、注釈付きコードを検証し、コードが特定の要件を満たしていない場合にコンパイラ警告を生成してルールを適用できます。Java SE 8 はデフォルトの型チェック フレームワークを提供しませんが、型チェック用のカスタム アノテーションとプロセッサを作成することは可能です。また、ダウンロード可能な型チェック フレームワークも多数あります。これらを Java コンパイラのプラグインとして使用して、アノテーションが付けられた型をチェックおよび適用できます。型チェック フレームワークは、型注釈定義と、注釈処理のためにコンパイラで使用される 1 つ以上のプラグ可能なモジュールで構成されます。

少なくともある種の@CanBeNullとを提供するソリューションのみを考慮@CannotBeNullして、次の情報を見つけました (間違っている可能性があります)。

静的コード分析で使用されるものもあれば、ランタイム検証で使用されるものもあります。

上記のオプション間の実際的な違いは何ですか? 標準はありますか (そうなる予定ですか)、それとも誰もが独自の分析フレームワークを作成できるようにするためのものですか?

0 投票する
1 に答える
299 参照

objective-c - Objective C で特定の場合に非 null を使用する正確な方法

null 可能性に関する多くの投稿を読みましたが、一生警告を消すことはできません。以下にいくつかの例を示します。

これらはそれぞれ次の警告を受け取ります:「null 許容ポインター 'NSData * _Nullable' から非 null 許容ポインター型 'NDSata* _Nonnull' への暗黙の変換

コードを NS_ASSUME_NONNULL_BEGIN/End で囲んでも機能しません。

(nonnull) __nonnull などのさまざまな組み合わせを試しましたが、警告を消すためのキーワードの魔法の場所が見つからないようです。

0 投票する
1 に答える
2057 参照

java - すべてのサブパッケージの IntelliJ IDEA @ParametersAreNonnullByDefault

nullpointer のクラッシュを防ぐために、IntelliJ のnull チェック メカニズムを使用します。この回答を使用して、デフォルトですべてのJavaメソッドパラメータを @NonNull に設定することに成功しました。

Javaでパッケージアノテーションを定義するために使用されるpackage-info.javaを作成した後。そのパッケージの直接の子孫であるすべての Java ファイルには、私の Android Studio プロジェクトにデフォルトの @NonNull パラメータを持つメソッドがあります。

ここに画像の説明を入力

明らかな問題は、そのパッケージ内のすべての Java クラス、つまりすべてのサブパッケージを含む@ParametersAreNonnullByDefaultを定義する必要があることです。

@ParametersAreNonnullByDefault を定義して、すべてのサブパッケージ Java ファイルに伝達されるようにするにはどうすればよいですか? デフォルトで、内部コードのすべてのメソッドに @NonNull アノテーションを付けたいと考えています。

ここに画像の説明を入力

0 投票する
1 に答える
4124 参照

java - Kotlin - null 許容フィールドの非 null ゲッター

私は Kotlin が初めてで、小さな Java プロジェクトをこの新しい言語に作り直そうとしています。プロジェクトでmongodbを使用しており、次のようなクラスがあります。

空のコンストラクターのため、idフィールドを nullable ( ) としてマークする必要があります。var id: ObjectId?別のクラスからこのフィールドにアクセスしようとすると、null 以外の check: を使用する必要がありますthePlayer.id!!。しかし、私のアプリケーションのロジックは、idフィールドが null になることはありません (mongo は Player のインスタンスを作成し、すぐに id フィールドを設定します)。そして、どこでもnull以外のチェックをしたくありません。

null 以外のゲッターを作成しようとしましたが、コンパイルされません。

id のスタブを作成してコンストラクターで使用することもできますが、これは汚いハックのように見えます。

問題を解決するための回避策はありますか?