2015-08-17 40 views
2

我能够在我的代码的main()方法中将MessageDigest作为局部变量调用,但每当我尝试在类中创建MessageDigest的字段变量时,并尝试在构造函数中初始化它,它会抛出一个NoSuchAlgorithm异常。messagedigest对象在用作java中的字段/静态变量时抛出NoSuchAlgorithm

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

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

+3

把你尝试的确切代码。然后人们将能够说出错的原因。 – Codebender

+0

引发异常,不返回。 – EJP

回答

1

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

+0

嗯,非常接近我的想法,实际上确实抛出了异常,这需要被捕获。 – khanna