我已经编写了一个lambda,但是我无法决定是简化lambda还是在代码中添加其他方法。所以,这是场景-
MyIterator
public Iterator<DTO> getIterator(final String someFilter) {
return new PageIterator<>(page -> getSomething(page, someFilter), 1);
}
getSomething
public List<DTO> getSomething(final int pageNumber, final String someFilter) {
return getSomething(pageNumber, DEFAULT_PAGE_SIZE, someFilter);
}
重载了getSomething
public List<DTO> getSomething(final int pageNumber, final int pageSize, final String someFilter) {
//Returns List<DTO>
}
实际上,我可以通过将DEFAULT_PAGE_SIZE添加到参数来直接从getIterator调用重载的getSomething,并且可以摆脱重载。
问题是- 哪种方法更好-简化lambda或不重载方法?
只问有关代码性能和简单性的意见吗?
答案 0 :(得分:0)
这与lambda无关。您要问的是,使用较少参数的辅助程序重载是否是一件好事。
答案:是的。
这是Java定义默认参数的方式,而Java Runtime Library则在各处进行。
示例:
Integer.parseInt(String s) // default: radix = 10
Integer.parseInt(String s, int radix)
string.substring(int beginIndex) // default: endIndex = string.length()
string.substring(int beginIndex, int endIndex)