【问题标题】:Extracting data from other methods in java and finding proper return types从java中的其他方法中提取数据并找到正确的返回类型
【发布时间】:2014-02-17 01:47:32
【问题描述】:

我将尽我所能解释这一点。我主要有一个用户输入数据来添加信息。它通过 bankparser 类来拆分不可避免地通过与此代码无关的第三类的数据。但是,尝试打印银行时出现错误。我 95% 的肯定是因为我在 BankParser 类中的回报为空。我不确定它需要什么返回类型,因为该类型实际上是另一个类。有谁知道如何解决这个问题?谢谢!

我希望打印银行信息时的输出如下所示: 银行名称:BankName 银行编号:12345 银行地址:马萨诸塞州波士顿

主要


case 'A':   //Add Bank
           System.out.print("Please enter the bank information:\n");
           inputInfo = scan.nextLine();
           bank1 = BankParser.bankParser(inputInfo);
           accounts[index] = bank1;
           index++;
           break;
         case 'B':   //Display banks
           for (int i=0; i< index; i++)
                    System.out.print(accounts[i].toString());
           break;

银行解析器


public class BankParser {

public static Bank bankParser(String lineToParse)
{
    Address AddressSetter = new Address();
    Bank BankSetter = new Bank();

    //Take in user data and segregate by bankName/bankID/city,state

    String bankInfo = lineToParse;

    String[] bankInfoArray = lineToParse.split("/"); //split array data

    String bankName = bankInfoArray[0];
    String bankID = bankInfoArray[1];
    String bankCity = bankInfoArray[2];
    String bankState = bankInfoArray[3];

    AddressSetter.setCity(bankCity);
    AddressSetter.setState(bankState);
    BankSetter.setBankAddress(bankCity, bankState);
    BankSetter.setBankID(bankID);
    BankSetter.setBankName(bankName);

    System.out.println(bankInfoArray[0]);


    return null;








}

}

【问题讨论】:

  • 请发布您的堆栈跟踪。
  • Assignment4.main(Assignment4.java:47) 处的线程“main”java.lang.NullPointerException 中的异常
  • 由于您的bankParser 方法具有作为返回值Bank,因此您必须返回在方法内部创建的Bank 类的实例(或类的字段)。也许您想返回BankSetter。我还建议您遵循 Java 约定。你的变量应该被称为bankSetteraddressSetter
  • 第 47 行指 System.out.print(accounts[i].toString());
  • Christian,当我返回BankSetter,然后在main中打印account的列表时,它只显示了城市和州,因为AddressSetter是通过main中的toString方法传递的。如何才能显示所有数据?

标签: java arrays methods types return


【解决方案1】:

bankParser 方法头说它应该返回一个 Bank 类对象,但它被设置为返回 null

尝试调用它并保存结果总是会给你一个空值。 根据BankParser中的这一行,看起来是用来打印自己的

System.out.println(bankInfoArray[0]);

【讨论】:

  • 那条 sysout 行是用于测试以确保数据被分成不同的部分,我实际上删除了它并且在我的代码中不需要它。
  • 为什么 AddressSetter 是一个单独的类?是为Bank类设置地址属性吗?
  • 它不是一个单独的类。这是一个对象。
  • 地址与银行有何关系?它没有打印地址,因为 bankParse 方法只返回一个 Bank 对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-11
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
相关资源
最近更新 更多