Как предотвратить передачу аргументов в неправильном порядке по ошибкеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как предотвратить передачу аргументов в неправильном порядке по ошибке

Сообщение Anonymous »

Базовый код написан на Java. Мне нужно условно прочитать данные из двух разных хранилищ.

Код: Выделить всё

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
);

}
Если разработчик переключит порядок выше параметров 2, 1. код будет скомпилирован и просто прочитает из неправильной базы данных. во время выполнения может произойти сбой, если данные отсутствуют или формат отличается. Я хочу, чтобы во время компиляции произошел сбой.
Я пробовал кучу вещей - например, создание двух интерфейсов, но не помогает. передача фиктивного параметра на один интерфейс и т. д. Либо это не работало, либо код выглядел слишком сложным и трудным для чтения. Как предотвратить случайное переключение порядка параметров разработчиком? Жду рекомендаций.

Подробнее здесь: https://stackoverflow.com/questions/792 ... by-mistake
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»