Чтобы исключить исключительное исключение индекса массива, следует использовать инструкцию расширенный- for
, где и когда они могут.
Основная мотивация (и использовать), когда вы выполняете итерацию, и вам не требуются сложные шаги итерации. Вы не могли бы использовать расширенный for
для перемещения назад в массиве или только для итерации на каждом другом элементе.
Вы гарантированно не исчерпали элементы для повторения при этом, а ваш [исправленный] пример легко конвертируется.
Код ниже:
String[] name = {"tom", "dick", "harry"};
for(int i = 0; i< name.length; i++) {
System.out.print(name[i] + "\n");
}
... эквивалентен этому:
String[] name = {"tom", "dick", "harry"};
for(String firstName : name) {
System.out.println(firstName + "\n");
}
К сожалению, нет хорошего ответа на это. Артефакты по версии должны быть неизменными; это управление зависимостями 101.
Я приложил бы как можно больше усилий, чтобы убедить команду, производящую артефакты, прекратить переопределение версий. Это правда, что иногда может быть неудобно изменять версии зависимостей в метаданных, но есть способы обойти это (например, разрешение последнего патча во время разработки, как это поддерживается в спецификации semver), и в любом случае, это не очень хорошее оправдание.
Если это невозможно, я бы хотел включить прямую потоковую передачу между репозиторием и клиентом (т. Е. , отключив кэширование артефактов ), чтобы предотвратить проблему устаревших артефактов.
Другим решением может быть очистка кэша с помощью пользовательского плагина или сценария с использованием JFrog CLI , как только вы узнаете о новых артефактах, публикуемых в удаленном репозитории.