Код: Выделить всё
interface Reader {
T read();
}
T foo(Reader reader1, Reader reader2) {
// read using reader1 or reader2 based on some
// conditions
}
ConcreType1 readFromDB1(some parameters) {
}
ConcreType2 readFromDB2(some other parameters) {
}
void someMethod() {
// some logic
foo(
() -> readFromDB1(params1), // 1
() -> readFromDB2(params2), // 2
);
}
Я пробовал кучу вещей - например, создание двух интерфейсов, но не помогает. передача фиктивного параметра на один интерфейс и т. д. Либо это не работало, либо код выглядел слишком сложным и трудным для чтения. Как предотвратить случайное переключение порядка параметров разработчиком? Жду рекомендаций.
Подробнее здесь: https://stackoverflow.com/questions/792 ... by-mistake
Мобильная версия