提问人:desmond_jones 提问时间:3/14/2020 更新时间:3/14/2020 访问量:43
“继承”函数参数
'Inheriting' function parameters
问:
我认为这有点与语言无关,但我想知道这个功能在 Java 中是如何工作的。
假设我有一个使用 Scanner 读取文件的函数:
void printFile(Scanner s) {
while (s.hasNextLine()) {
String line = s.nextLine();
System.out.println(line);
}
}
因此,如果我有几种方法来模拟文件,那么使用此功能将是
String content = "foo\nbar\n";
printFile(new Scanner(content));
File file = new File("my/file.txt");
printFile(new Scanner(file));
InputStream input = new URL("http://www.somewebsite.com/a.txt").openStream();
printFile(new Scanner(input));
我的问题是,如果我有几种方法可以模拟这个文件,我如何使这个函数更容易使用,而不必在每次调用它时都输入?new Scanner()
一些观察:
这在两个方面很有用:轻松编写单元测试和为用户简化 API。
重载函数可以解决问题,但是,如果原始函数有多个重载,这可能会使代码变得丑陋和/或使编写代码变得复杂,开发人员必须阅读文档,编写相应的重载并重复。
答: 暂无答案
上一个:方法调用是否也包括执行?
评论
new
new
printFile(Object o)
Scanner
printFile(file)
printFile(new Scanner(file))
void printFile(URL url)
void printFile(File file)
void printFile(Scanner)
Scanner