如何解析另一个 class 中的参数?
How to parse args in another class?
我有一个关于解析参数的问题。我有一个在 WriteToFile
class 中的写入方法,如下所示:
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 方法,但是 write 方法被多个 classes 使用,所以需要超过 3 行来修复它。我试图扩展 main class 以进入范围,但没有用。有什么办法吗?
public void write (String text, String filename) // 1
{
FileWriter writer = new FileWriter(filename,true); // 2
...
在你的主程序中,在调用时执行此操作。
new WriteToFile().write(text, args[1]); // 3
如评论所示,这些恰好是 3 行更改。
添加参数并在调用方法时使用它只需要三个更改:
// 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) 在 WriteToFile
class (fileName)
中创建新的 public 字段
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);
我有一个关于解析参数的问题。我有一个在 WriteToFile
class 中的写入方法,如下所示:
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 方法,但是 write 方法被多个 classes 使用,所以需要超过 3 行来修复它。我试图扩展 main class 以进入范围,但没有用。有什么办法吗?
public void write (String text, String filename) // 1
{
FileWriter writer = new FileWriter(filename,true); // 2
...
在你的主程序中,在调用时执行此操作。
new WriteToFile().write(text, args[1]); // 3
如评论所示,这些恰好是 3 行更改。
添加参数并在调用方法时使用它只需要三个更改:
// 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) 在 WriteToFile
class (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);