我有一部分代碼要升級。
request.getLastName(),
request.getEmail(),
request.getPassword(),
AppUserRole.USER
)
);
String link = "http://localhost:8080/api/v1/registration/confirm?token=" token;
emailSender.send(
request.getEmail(),
buildEmail(request.getFirstName(), link));
return token;
}
我想創建 if,為了賦予角色 ADMIN,我嘗試在 appUserService 內部和外部添加 if 與另一個 appUserService 類似的缺點,但它總是給我一個錯誤。當 if 中的 String token = appUserService.signUpUser 時,它表示該令牌未在 String 鏈接中定義...部分代碼。我希望它會是那樣
if (request.getEmail() == "[email protected]") {
String token = appUserService.signUpUser(new AppUser(request.getFirstName(), request.getLastName(), request.getEmail(), request.getPassword(), AppUserRole.ADMIN));
} else {
String token = appUserService.signUpUser(new AppUser(request.getFirstName(), request.getLastName(), request.getEmail(), request.getPassword(), AppUserRole.USER));
}
請寫信給我它必須如何正常作業。
uj5u.com熱心網友回復:
token在 if-else 之外定義。然后根據您的條件為其賦值。像這樣:
String token;
if (request.getEmail().equals("[email protected]")) {
token = appUserService.signUpUser(new AppUser(request.getFirstName(), request.getLastName(), request.getEmail(), request.getPassword(), AppUserRole.ADMIN));
} else {
token = appUserService.signUpUser(new AppUser(request.getFirstName(), request.getLastName(), request.getEmail(), request.getPassword(), AppUserRole.USER));
}
String link = "http://localhost:8080/api/v1/registration/confirm?token=" token;
這稱為變數作用域,您可以在此處了解更多資訊。
此外,您不應該將 string 與 進行比較,請在此處==閱讀更多資訊。
uj5u.com熱心網友回復:
將此代碼寫入此:
String token = null;
if (request.getEmail().equals("[email protected]")) {
token = appUserService.signUpUser(new AppUser(request.getFirstName(), request.getLastName(), request.getEmail(), request.getPassword(), AppUserRole.ADMIN));
} else {
token = appUserService.signUpUser(new AppUser(request.getFirstName(), request.getLastName(), request.getEmail(), request.getPassword(), AppUserRole.USER));
}
它應該作業。
首先,您的 String 比較不正確。您正在比較參考而不是內容。其次(這是您的要求),您在 if 塊中宣告了令牌,在 if 和 else 塊之外找不到該令牌。
uj5u.com熱心網友回復:
兩個分支之間有很多重疊。除了token之外,還可以在if陳述句前宣告角色(if回圈錯誤):
AppUserRole role;
if (request.getEmail().equals("[email protected]")) {
role = AppUserRole.ADMIN;
} else {
role = AppUserRole.USER;
}
String token = appUserService.signUpUser(new AppUser(request.getFirstName(), request.getLastName(), request.getEmail(), request.getPassword(), role));
String link = "http://localhost:8080/api/v1/registration/confirm?token=" token;
現在您不必重復所有其他代碼來創建 AppUser。
更簡潔地說,您可以使用三元條件運算子:
AppUserRole role = request.getEmail().equals("[email protected]") ? AppUserRole.ADMIN : AppUserRole.USER;
String token = ...
注意我還修復了您的字串比較問題,請閱讀如何在 Java 中比較字串?.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/482303.html
上一篇:獲取嵌套物件的字串
