【问题标题】:Java -- How do I call a method using args[]?Java -- 如何使用 args[] 调用方法?
【发布时间】:2019-11-06 17:13:04
【问题描述】:

问题: 我不知道如何像作业指示我那样正确调用方法。

目标: 在 main 方法中,使用第一个命令行参数 (args[0]) 调用 readFile 方法,然后使用第二个命令行参数 (args[1]) 调用 writeFile 方法。

我尝试过的:

public static void main(String[] args)
{
    if(args.length == 0)
    {
        inputFile = FileIO(args[0]);
    }
    if(args.length == 1)
    {
        outputFile = FileIO(args[1]);
    }
}

使用的代码:

public class FileIO {

    public void readFile(String inputFile)
    {

    }

    public void writeFile(String outputFile) 
    {

    }

    public static void main(String[] args)
    {

    }
}

错误:

此行有多个标记
-inputFile 无法解析为变量
- 方法 FileIO(String) 未定义类型 FileIO

【问题讨论】:

    标签: java methods readfile writefile


    【解决方案1】:

    我不想为你做作业,但我可以给你一些提示,让你走得更远。

    首先与您遇到的错误有关,您必须在Java 中声明变量的类型,所以不要只说

    inputFile = FileIO(args[0])

    您必须声明该变量的类型。我不确定 FileIO() 返回什么,但如果它是 File 对象,您需要声明

    File inputFile = FileIO(args[0])

    如果编译器不知道inputFile 是什么并抛出该错误。

    接下来它告诉你FileIO(String) 不是一个函数。 FileIO 只是一个类,但您忘记指定要使用的类中的哪个函数。例如,我希望您打算使用FileIO.readfile(args[0])。目前尚不清楚您的第一个mainFileIOmain 的实现,还是仅使用FileIO 的单独文件,因此我需要查看更多内容以了解更多细节。请注意,您必须有一个类的实例(如果您打算在其中调用非静态方法,则使用 new FileIO() 创建。

    最后,您需要了解从零开始的数组的概念。具有一个元素的数组将有 array.length 告诉您 1 但您会在索引 array[0] 处找到值。例如:

    String[] args = ["a","b"];
    args.length;  // This is 2
    args[0];      // This is "a"
    args[1];      // This is "b"
    

    所以最后一个元素总是在索引array.length-1

    当您说if(args.length == 0) 时,您实际上是在询问数组是否为空。

    【讨论】:

    • FileIO 是文章第二段代码中定义的类。他们需要帮助理解整个方法,他们不明白如何调用在 FileIO 类中定义的 readFile()
    • 是的 - 我注意到就在我发布我的初稿时 - 现在已编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 2011-05-07
    • 2020-04-27
    相关资源
    最近更新 更多