Java 我怎么称呼这个方法?

Java 我怎么称呼这个方法?,java,methods,bufferedreader,Java,Methods,Bufferedreader,对于一个项目,我需要在main方法中调用方法getBill。getBill返回一个int值(bill),但当我像这样声明它时: getBill(qty); 我遇到了一个错误。我对使用方法比较陌生,我是否正确地声明了方法本身?有没有办法不用使用方法就能完成getBill所做的事情 这是我正在处理的代码中需要调用方法的部分: while (true) { line = bc.readLine(); if (line == null)

对于一个项目,我需要在main方法中调用方法getBill。getBill返回一个int值(bill),但当我像这样声明它时:

getBill(qty);

我遇到了一个错误。我对使用方法比较陌生,我是否正确地声明了方法本身?有没有办法不用使用方法就能完成getBill所做的事情

这是我正在处理的代码中需要调用方法的部分:

        while (true) {
            line = bc.readLine();
            if (line == null)
                break;
            billdata = line.split(",");
            accs = Integer.parseInt(billdata[0]);
            type = billdata[1];
            qty = Integer.parseInt(billdata[2]);
            company = billdata[3];


            if (accNo == accs) {
                System.out.println("Your RHY Telecom account has been found.");
                System.out.printf("%5s", accs);
                System.out.printf("%24s", qty);
                System.out.printf("%10s", type);
                System.out.printf("%20s", company);

                System.out.println("Your current charges are: ");

            }

        }
    }

这就是方法本身:

    public static int getBill(int plan, int bill, int qty, String[] accountdata, String line) throws Exception {//getting details from text file number 2, then computing the bill
        BufferedReader bf = new BufferedReader(new FileReader("res/Account-Info-Final1.txt"));
        accountdata = line.split(",");
        plan = Integer.parseInt(accountdata[4]);
        bill = 0;
        int smslimit = Integer.parseInt(accountdata[5]);
        int calllimit = Integer.parseInt(accountdata[6]);
        double datalimit = Double.parseDouble(accountdata[7]);

        if (qty > smslimit) {
            bill = (qty * 2) + plan;
        } else if (qty > calllimit) {
            bill = (qty * 5) + plan;
        } else if (qty > datalimit) bill = (qty * 3) + plan;
        else if (qty <= smslimit || qty <= datalimit || qty <= calllimit){
                bill += plan;
            }
        return bill;
        }


    }
public static int getBill(int plan,int bill,int qty,String[]accountdata,String line)引发异常{//从文本文件2获取详细信息,然后计算账单
BufferedReader bf=新的BufferedReader(新文件阅读器(“res/Account-Info-Final1.txt”);
accountdata=line.split(“,”);
plan=Integer.parseInt(accountdata[4]);
比尔=0;
int-smslimit=Integer.parseInt(accountdata[5]);
int calllimit=Integer.parseInt(accountdata[6]);
double datalimit=double.parseDouble(accountdata[7]);
如果(数量>smslimit){
清单=(数量*2)+计划;
}否则如果(数量>呼叫限制){
清单=(数量*5)+计划;
}否则如果(数量>数据限制)账单=(数量*3)+计划;

否则,如果(数量将一个方法视为一个数学函数,具有输入和输出

getBill方法声明应该只声明方法需要作为输入的方法参数(即括号中逗号分隔的变量)

调用getBill方法的代码不需要提供plan值作为输入。该方法本身会立即覆盖该值,并忽略调用代码提供的任何值

您应该从方法参数中删除
plan
,而是在方法体中声明它:

int plan = Integer.parseInt(accountdata[4]);
对于
账单
账户数据
也是如此:

String line = bf.readLine();
String[] accountdata = line.split(",");
int plan = Integer.parseInt(accountdata[4]);
int bill = 0;
一旦从方法签名中删除所有这些签名,它将如下所示:

public static int getBill(int qty)

…这将允许您按预期调用该方法。

您的getBill方法有5个参数,您正在传入一个参数

类似于
getBill(1,2,3,新字符串[]{“Hello”,“World”},“Line”);
将调用该方法,将
plan
设置为1,
bill
设置为2,等等。您将
plan
设置为1qty
的值,而其他4个参数仍然丢失;您需要将它们显式添加到调用中


注意:旁注,您没有关闭文件资源,因此此代码将很快因资源不足而崩溃。请查找“使用资源重试”,以便安全地打开该文件。

“我遇到错误”错误是什么?错误是什么?错误消息包含有关错误的有用线索。因此不要只说“有错误”-尝试理解错误消息告诉您的内容。并将其添加到您上面的问题中。欢迎使用stackoverflow。请提供问题的详细描述和再现所述问题的最小示例。您的方法预期获得5个参数。您仅使用1个参数调用它。您为什么希望这样做?@ThellegreenFresh如果该方法有5个参数,则需要将所有5个数据传递给它。