gpt4 book ai didi

java - 为什么java字符串方法将null作为字符串返回?

转载 作者:行者123 更新时间:2023-12-01 13:45:28 25 4
gpt4 key购买 nike

关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

去年关闭。




Improve this question




这发生在使用 java 版本 1.8(java8) 的 spring-boot 应用程序中。在 java 14 的普通控制台应用程序中,它运行良好。

我有两个与 JWT 过滤类相关的方法,该类由“OncePerRequestFilter”类扩展。

private String getJwt(HttpServletRequest request) {
String authHeader = request.getHeader("Authorization");
if (authHeader != null && authHeader.startsWith("Bearer ")) {
return authHeader.replace("Bearer ", "");
}

return null;
}

@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
try {
String jwt = getJwt(request);
if (!jwt.equals("null") && okenProvider.validateJwtToken(jwt)) {
.....
.....
}
} catch (Exception e) {
....
}
filterChain.doFilter(request, response);
}

预期 jwt 变量值是一个标记或空对象。用于检查以前使用的 jwt != null这总是给真的。当仅将其更改为 !jwt.equals("null") 时,它按预期工作.
据此, getJwt 方法总是返回一个 String 对象,即使它为空。这怎么解释?有没有办法返回空值而不是“空”?

最佳答案

其实是调试的时候出现了一些错误,导致了这个问题。
对于登录/登录请求,前端应用程序已通过身份验证 header 的用户凭据为 Bearer null .然后是 getJwt 方法将“null”的切片字符串返回给另一个方法。它从未被执行 return null线。

关于java - 为什么java字符串方法将null作为字符串返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62208016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com