java - Java:无法在尝试之外返回变量?
问题描述
我不断从下面的代码中收到以下错误
错误:
AccountController.java:55: error: cannot find symbol
return encoded;
^
symbol: variable encoded
location: class AccountController
1 error
代码:
public static String hash(String password) {
try {
MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] byteOfTextToHash = password.getBytes(StandardCharsets.UTF_8);
byte[] hashedByetArray = digest.digest(byteOfTextToHash);
String encoded;
encoded = Base64.getEncoder().encodeToString(hashedByetArray);
} catch(NoSuchAlgorithmException e) {
e.printStackTrace();
};
return encoded;
}
谢谢您的帮助!
解决方案
您的encoded
变量超出范围。将其移出尝试将解决此问题:
public static String hash(String password) {
String encoded = null;
try {
MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] byteOfTextToHash = password.getBytes(StandardCharsets.UTF_8);
byte[] hashedByetArray = digest.digest(byteOfTextToHash);
encoded = Base64.getEncoder().encodeToString(hashedByetArray);
} catch(NoSuchAlgorithmException e) {
e.printStackTrace();
};
return encoded;
}
推荐阅读
- c# - 如何将变量的值而不是变量添加到 C# 中的 mouseclick 事件中?
- java - 报告 - 即使使用 @SuppressWarnings 禁止使用已弃用的字段、方法和类
- python - 如何在 python 中使用 osmnx 将图形保存为 .osm 格式?
- sql - 如何在不使用 group by 的情况下按日期聚合数据组?
- quarkus - 在 quarkus 中发送带有标头的 amqp 消息
- javascript - 当用户按下回车并且元素失去焦点时触发事件
- python - 我尝试使用函数 ynumpy.siftgeo_read 读取一些图像的 siftgeo,但出现错误 'yael' has no attribute 'BytePtrArray'
- mysql - 在 node.js 中选择具有相同名称的 2 列的查询
- java - Eclipse 可以为我生成的每个线程提供一个输出控制台吗?
- azure - 查找所有已停止或没有部署的云服务(经典)