messagedigest 对象在 java 中用作 field/static 变量时抛出 NoSuchAlgorithm

messagedigest object throws NoSuchAlgorithm when used as a field/static variable in java

我可以在代码的 main() 方法中将 MessageDigest 作为局部变量调用,但是每当我尝试在 class 中创建 MessageDigest 的字段变量并尝试在构造函数中初始化它时,它抛出一个 NoSuchAlgorithm 异常。

我的直觉是我们不能像那样实例化 MessageDigest 对象。是真的吗?

基本上,this is 我做了什么。我想将其用作字段变量,而不是局部变量。

你是对的。由于该异常被声明为抛出,您可以将 MessageDigest 对象初始化为成员变量的唯一方法是通过包含该异常的构造函数,或者包含适当 try/catch 块的构造函数或初始化程序。否则无法编译。