2

コードの main() メソッドで MessageDigest をローカル変数として呼び出すことはできますが、クラスで MessageDigest のフィールド変数を作成し、コンストラクターで初期化しようとすると、NoSuchAlgorithm 例外がスローされます。

私の直感では、そのような MessageDigest オブジェクトをインスタンス化することはできません。本当?

基本的に、これは私がやったことです。これをローカル変数ではなく、フィールド変数として使用したい。

4

1 に答える 1

1

あなたは正しいです。その例外がスローされるように宣言されているため、MessageDigest オブジェクトをメンバー変数として初期化できる唯一の方法は、その例外を保持するコンストラクター、または適切な try/catch ブロックを含むコンストラクターまたは初期化子を使用することです。そうしないと、コンパイルされません。

于 2015-08-17T11:59:02.453 に答える