如何解析另一个类中的args?

时间:2016-05-30 06:47:18

标签: java args

我有一个关于解析args的问题。我有一个写WriteToFile类的写方法,如下所示:

public class WriteToFile {  

    public void write (String text){
        try{
            FileWriter writer = new FileWriter("output.txt",true);
            BufferedWriter write = new BufferedWriter(writer);

            write.write(text);
            write.newLine();
            write.close();
        }
        catch (Exception error){
            error.printStackTrace();
        }
    }

public class A {

    WriteToFile write = new WriteToFile();
    write.write(something);

}

public class B {

    WriteToFile write = new WriteToFile();
    write.write(something);

}

我们需要将" output.txt" 更改为 args [1] 。通常在方法中添加一个参数是解决方案,但只允许3行代码更改。我尝试添加一个set方法但是写了多个类使用的方法,所以修复它需要3行以上。我试图扩展主类进入范围,没有工作。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:4)

添加参数并在调用方法时使用它只需要进行三处更改:

// Change 1 - add a fileName parameter to the method
public void write (String text, String fileName) { 
    try{
        FileWriter writer = new FileWriter(fileName, true); // Change 2 - use it
        BufferedWriter write = new BufferedWriter(writer);

        write.write(text);
        write.newLine();
        write.close();
    }
    catch (Exception error){
        error.printStackTrace();
    }
}

// Change 3 - in the main method that calls this one, pass args[1]:
myWriter.write("someText", args[1]);

答案 1 :(得分:1)

public void write (String text, String filename) // 1
{
   FileWriter writer = new FileWriter(filename,true); // 2
   ...

在你的主要部分,在打电话时这样做。

new WriteToFile().write(text, args[1]); // 3  

这些正是3行更改,如注释所示。

答案 2 :(得分:1)

1)在WriteToFile类(fileName)

中创建新的公共字段

2)来自主myWriter.fileName = args[1]

3)FileWriter writer = new FileWriter(fileName, true);

//没有更改方法签名100次

修改

如果你在整个地方构建了许多WriteToFile实例,那么在Main中使用静态字段

1)在Main public static String fileName;

2)来自主Main.fileName = args[1]

3)FileWriter writer = new FileWriter(Main.fileName, true);