Вы можете использовать else if
, чтобы сделать что-то вроде этого:
static {
// choose 1st file's path
if (CONFIG_FILE_1.exists() && CONFIG_FILE_1.isFile()) {
loadConfiguration(CONFIG_FILE_1);
}
else if (CONFIG_FILE_2.exists() && CONFIG_FILE_2.isFile()) {
loadConfiguration(CONFIG_FILE_2);
}
// choose 2nd file's path
if (CONFIG_FILE_3.exists() && CONFIG_FILE_3.isFile()) {
loadConfiguration(CONFIG_FILE_3);
}
else if (CONFIG_FILE_4.exists() && CONFIG_FILE_4.isFile()) {
loadConfiguration(CONFIG_FILE_4);
}
}
В лучшем случае это будет означать, что нужно проверить только 2 пути, однако в худшем случае все пути еще нужно проверить.
Чтобы избежать дублирования кода, было бы неплохо создать отдельный метод для извлечения правильных файлов.
public static File fetchConfigFile(file1, file2) {
if (file1.exists() && file1.isFile()) {
return file1;
}
else if (file2.exists() && file2.isFile()) {
return file2;
}
// Be aware: returning null might not be what you want.
return null;
}
А чем блок static
можно упростить до этого:
static {
loadConfiguration(fetchConfigFile(CONFIG_FILE_1, CONFIG_FILE_2));
loadConfiguration(fetchConfigFile(CONFIG_FILE_3, CONFIG_FILE_4));
}