検索

Java では、アサーションは、プログラム内で行われた仮定の正しさを保証またはテストするステートメントです。これは、assert ステートメントを使用して行われます。書かれた仮定が実行されると、それは真実とみなされます。 false の場合、Java 仮想マシンによってアサーション エラーがスローされます。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

アサーションが使用される主な理由は次のとおりです。

  • 到達不能なコードが到達可能かどうかを確認するため。
  • コメント内の仮定が正しいかどうかを確認するため。
  • 確認しますが、スイッチのデフォルトのケースには達していません。
  • メソッドの呼び出し後。
  • オブジェクトの状態を確認します。

構文

以下は Java Assertion ステートメントの構文です。

assert expression;
assert expr1 : expr2;

要件に基づいて、これらの構文のいずれかを使用できます。

Java ではアサーションはどのように機能しますか?

すでに述べたように、assert は 2 つの形式で記述できます。

  • 構文は式をアサートします。ブール形式の式をテストするために使用されます。特定の式が false の場合、プログラムは AssertionError をスローして終了します。通常の例外とは異なり、これらのエラーは実行時に無効になります。
  • ただし、構文は expr1: expr2; をアサートします。これは、特定の障害の診断に役立つ追加情報がプログラムに含まれている場合に使用されます。
  • Java のキャッチされなかった例外と同様に、アサーション エラーは通常、ファイルおよび例外がスローされた行番号とともにスタック トレースにラベル付けされます。

これらがアサーションの主な長所ですが、アサーションを使用すべきではない特定の状況があります。それらは次のとおりです:

  • エラーメッセージの置き換え
  • パブリックメソッドの引数チェック
  • コマンドライン引数。
注: コードをコンパイルする前に、アサーションが有効になっていることを確認してください。

構文

java –ea programname

または

java –enable assertions programname

Eclipse Java アサーションを使用する手順

Eclipse では、以下の手順を使用して実行できます。

ステップ 1: [実行構成] を選択します。

Java アサーション

ステップ 2: 左側のパネルに移動して Java アプリケーションを選択し、それを右クリックします。

Java アサーション

ステップ 3: 新しい構成を選択し、VM 引数に –ea と入力します。完了したら、クリックします。

Java アサーション

同様に、以下の構文を使用してアサーションを無効にすることができます。 Java -da プログラム名

Java アサーションの実装例

ここで、アサーションを明確に理解するために、アサーションのサンプル プログラムをいくつか見てみましょう。

例 #1

特定の値が 20 より大きいかどうかを確認する Java プログラム。

コード:

class AssertionExample{
public static void main( String args[] ){
int val = 14;
assert val>=20:" Value is not valid";
System.out.println("The given value is: "+ val);
}
}

出力:

  • コードを実行すると、「指定された値は 14 です」というメッセージが表示されます。

Java アサーション

  • 値が 20 より大きい場合はチェックされないため、ここではアサーションがチェックされていないことが明らかにわかります。
  • アサーションを有効にするには、コンパイル前に -ea を設定する必要があります。そのためには、注に記載されている手順を実行してください。
  • もう一度コードを実行しようとすると、値が 20 未満であるため、AssertionError がスローされたことがはっきりとわかります。

Java アサーション

例 #2

特定のユーザー入力値が 20 より大きいかどうかを確認する Java プログラム。

コード:

import java.util.Scanner;
class AssertionExample{
public static void main( String args[] ){
Scanner <u>sc</u> = new Scanner( System.in );
System.out.print("Enter a number to check assertion ");
//store the input value to the variable <u>val</u>
int val = sc.nextInt();
//assertion check whether the input value is greater than 20
assert val>=20:" Value is not valid";
System.out.println("The given value is: "+ val);
}
}

出力:

  • ユーザーはコードを実行する際に番号の入力を求められます。以下の結果では、数値 13 が入力として与えられています。 20未満なのでAssertionErrorがスローされています。

Java アサーション

  • 同時に、20 より大きい値が指定された場合、エラーはスローされず、メッセージが表示されます。

Java アサーション

例 #3

一週間の日数を確認する Java プログラム。

コード:

class AssertionExample {
//main method
public static void main(String args[]) {
//declare a string days
String[] days = {" Monday " , " Holiday " , " Saturday " , " Tuesday " , " Wednesday " , " Sunday " , " Thursday " , " Friday " };
//set the assertion as 7
assert days.length==7 : "7 days are present in a week, Your input is wrong";
//print the line below
System.out.println("There are " + days.length + "  days in a week");
}
}

出力:

  • コードを実行すると、1 週間の日数が 7 であり、指定された文字列入力にはそれ以上の日数が含まれているため、アサーション エラーがスローされます。

Java アサーション

  • 入力値から Holiday を削除し、出力がどのようになるかを見てみましょう。

Java アサーション

はい。アサーション値が入力値を満たすと、この行が出力されます。

Java でアサーションを使用する利点

アサーションを使用する主な利点は次のとおりです。

  • バグの効率的な検出と修正。
  • ボイラープレート コードは削除され、読みやすいコードの作成に役立ちます。
  • 実行時に自動的に削除されるため、実行時間には影響しません。
  • 迅速なバグの検出と修正。
  • コードの最適化とリファクタリングは、正しく機能するために高い信頼性を持って行われます。

上記の点に加えて、アサーションを学習する際に知っておく必要がある重要な点を以下に示します。

  • Java のアサーションはバージョン JDK 1.4 で導入されました
  • Assert は、アサーションを実装するために使用されるキーワードです。
  • アサーションの有効化と無効化は、対応する構文を使用して実行時に行うことができます。
  • アサーションは例外を補完しますが、例外を置き換えるものではありません。
  • 条件の検証に役立つ場合でも、単体テストに代わるものではありません。
  • パブリックなメソッドの引数またはパラメーターの検証にはアサーションを使用しないでください。

結論

Java アサーションは、特定の条件の真偽をチェックするステートメントです。ソフトウェア開発時のテストでよく使用されます。さらに、これらは特定のブール式とともに使用されます。この記事では、構文、動作、長所、短所、アサーションの例などのいくつかの側面について詳しく説明します。

以上がJava アサーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)