Какой из них является более эффективным дополнительным параметром в лямбде или перегрузке метода? - PullRequest
0 голосов
/ 27 сентября 2018

Я написал лямбду, и я не могу принять решение, упрощать ли лямбду или сделать дополнительный метод в коде.Итак, вот сценарий -

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>
 }

Я могу фактически вызвать перегруженный getSomethingнепосредственно из getIterator, добавив DEFAULT_PAGE_SIZE к параметру и может избавиться от перегрузки.

Вопрос в том, какой путь лучше - упрощать лямбду или не перегружать метод?

Просто спрашиваете мнение относительно производительности и простоты кода?

1 Ответ

0 голосов
/ 27 сентября 2018

Это не имеет ничего общего с лямбдами.Вы спрашиваете, хорошо ли перегрузок хелпера с меньшим количеством параметров.
Ответ: Да.

Это способ определения параметров по умолчанию в 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)
...