MessageDigest md = null;
md = MessageDigest.getInstance(MESSAGE_DIGEST_ALGORITHM);
md.update(saltBytes);
md.update(passwordBytes);
byte[] digest = md.digest();
就像上面那样,“MessageDigest md = null”,代码是什么意思? 我认为“MessageDigest md = MessageDigest.getInstance(MESSAGE_DIGEST_ALGORITHM);”更好。
为什么呢?有那么多代码,只是因为历史?
答案 0 :(得分:3)
为什么始终使用object = null?
它不是“永远使用”。事实上,像这样的东西很少/从未出现在编写良好/已审核的代码中。
因为......
MessageDigest md = null;
md = MessageDigest.getInstance(MESSAGE_DIGEST_ALGORITHM);
直接等同于
MessageDigest md = MessageDigest.getInstance(MESSAGE_DIGEST_ALGORITHM);
为什么 [人们这样做] ?
没有充分的理由。
这样的代码很多,只是因为历史?
可能。
另外,可能是因为:
唯一可以确定的方法是询问作者。
答案 1 :(得分:0)
如果您使用某些条件语句,则无法进行空赋值,您只能编写
MessageDigest md;
if (/*something*/) {
md = MessageDigest.getInstance(MESSAGE_DIGEST_ALGORITHM);
}
您必须为md
变量明确指定一些值。在这种情况下,经常使用null。
然而,在你的例子中,它绝对没用。只需写下
MessageDigest md = MessageDigest.getInstance(MESSAGE_DIGEST_ALGORITHM);
答案 2 :(得分:0)
为什么会有这样的代码?因为很多人不了解他们编程语言的基本模式。
为什么人们不知道更好?因为没有人经常教他们。 (好吧,除了IntelliJ,但IDE会针对高级开发人员。)
为什么没有人告诉他们?也许是因为他们的同事也不太了解它。
还有人记录了他们的getter和setter方法("返回名称。@return the Name")。它的情况差不多。