Java中使用String作为参数时方法未返回布尔值问题求助
修复你的Java方法返回布尔值问题
我帮你梳理下代码里的核心问题,主要是逻辑倒置和空指针风险,导致方法没法正确返回布尔值,甚至会直接抛出异常。咱们逐个方法来修正:
1. addTransaction方法的问题与修复
原代码里,你在分支不存在(branchName1 == null)的时候去调用它的方法,这会直接触发空指针异常,而且逻辑完全搞反了——应该是找到分支后才执行添加交易的操作。
修正后的代码:
public Boolean addTransaction(String branchName, String customerName, Double amountAdding) { // 先找到对应的分支 BranchName branchName1 = findBranch(branchName); if (branchName1 != null) { // 分支存在,调用添加交易的方法并返回结果 return branchName1.newTransactionAdd(customerName, amountAdding); } else { // 分支不存在,打印提示并返回false System.out.println("No branch name"); return false; } }
2. addCustomer方法的问题与修复
同样的,原代码在分支不存在时调用null对象的方法,触发空指针,逻辑也倒置了。这里假设你的需求是在已存在的分支下添加客户,如果分支不存在则返回false;如果需要自动创建分支,可以在else块里新增创建分支的逻辑。
修正后的代码:
public Boolean addCustomer(String branchName, String customerName, Double previousDeposit) { // 先找到对应的分支 BranchName branchName1 = findBranch(branchName); if (branchName1 != null) { // 分支存在,添加客户并返回true branchName1.AddnewCustomer(customerName, previousDeposit); return true; } else { // 分支不存在,返回false(如果需要自动创建分支,可以在这里添加创建逻辑) System.out.println("No such branch exists"); return false; } }
额外注意点
- 变量名尽量遵循Java驼峰命名法,比如
previousDeposit(原代码里的PreviousDeposite首字母大写了,还有拼写错误,应该是Deposit) BranchName这个类名有点奇怪,通常表示“分支”的类名用Branch会更符合常规命名习惯- 确保
newTransactionAdd方法确实返回Boolean类型,这样你的addTransaction方法才能正确返回它的结果
内容的提问来源于stack exchange,提问作者Sachin Barpanda
相关产品推荐
相关产品推荐

