Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Я определенно считал бы перемещение от clearcase до подверсии обновлением!
На основе моего опыта ClearCase имеет действительно много издержек, и мы справились значительно с SVN.
я голосую, "снижение" (на самом деле ОБНОВЛЕНИЕ). ;)
Главная вещь, которую я изучил, состоит в том, что, более важный, чем продукт процесс .
при реализации ClearCase (CC) с помощью модели SVN-типа, затем SVN будет работать просто великолепно и будет партия более дешев.
, С другой стороны, при использовании задержанного ветвления, сборки маркировкой и динамических представлений (или может), который мы используем для большого преимущества в том, чтобы экономить время и усилие и улучшение надежности, Вы будете серьезно сожалеть, что теряли эти функции. (Не говоря уже об управлении сборками, UCM, и т.д.)
я нахожу, что большинство людей использует предпочтительный вариант, который похож на использование Феррари в трафике часа пик...
Пример? Определите маркирует GA, SP1, SP2 (Вы можете иметь как много выпусков между GA и SP1, как Вам угодно не релевантным, и помнить, маркировки CC НЕ являются тем же как SVN). GA был Вашим основным выпуском, SP1 является Вашим текущим выпуском. SP2 является Вашим следующим выпуском. Текущий выпуск основан на GA и SP1. Следующий выпуск основан на GA, SP1 и SP2 (см., что CC конфигурирует спецификации)
Начинают QA. Разработка делает продолжающуюся работу для "следующего выпуска", и пользователи могут сослаться (не, изменяются), GA и SP1, и может применить SP2. Обслуживание делает работу для восстановления дефектов, найденных QA, и может сослаться на GA и применить SP1.
Случай 1: В ClearCase простое действие применения маркировки SP1 делает фиксацию автоматически доступной команде выпуска Dev SP2. Никакая работа. Nada, Нуль.
В Подверсии, Вы внесли бы изменение на ответвлении QA, и затем (надо надеяться, помните к), перемещают изменение в SP2.
Случай 2: перед выяснением, конечно, если Вы добавляете изменение SP2, необходимо будет перейти для добавления последующего изменения для SP1, как это было бы в большинстве систем.
В моем мире, числах реального мира: Случай 1 произошел 122 раза для моего последнего SP (8 SPS в год). Более чем 800 изменений в год, которые я не должен был вносить в ClearCase, который я должен был сделать, если я использовал модель Subversion.
Случай 2 произошел 6 раз с начала 2002 года, когда мы установили CC.
Взгляд процесс , не только продукт .
(Извините за длину, это не запускало это долго :-)
Мы пошли от ClearCase LT до SVN, и любите его. Мы сохраняем много наличных в комиссии, и все работает точно так же как прежде.
мне просто жаль, что я не исследовал Мерзавца или что-то как этот, прежде чем я рекомендовал SVN.
Я соглашаюсь с предыдущими плакатами. Отказ от продукта IBM и перемещение в продукт управления исходным кодом с открытым исходным кодом не будут снижением вообще. Вы, вероятно, будете более довольны ими легче и легче использовать инструменты. В нашем магазине мы находимся в процессе перемещения от CVS до SVN и были вполне довольны результатом.
Fourthing рекомендация, которую Вы переключаете. Если Вы не используете функции, это - плохой бизнес-выбор пойти с коммерчески оцененным решением.
Теперь, существует связанная стоимость с "бесплатным" решением, также. Ни SVN, ни Подвижный не собираются оказать Вам поддержку товарного сорта. Если это - проблема, и это, конечно, может быть для некоторых ситуаций, Вы не могли бы хотеть делать это.
Из двух, что Вы упоминаете, SVN является тем, который необходимо выбрать при текущем использовании централизованного репозитория VC. Мало того, что операционная модель SVN является простой и интуитивной, но SVN имеет просто лучшую документацию и сообщество разработчиков, которое я когда-либо видел в проекте с открытым исходным кодом. Пользовательский список рассылки великолепен, разработчики являются быстро реагирующими и ответственными своим пользователям, и , Красная Бобовая книга является единственной лучшей частью руководства с открытым исходным кодом, пишущего там.
У меня нет проблемы с Вашим "переключателем". Это будет обновление, если у Вас не будет многих взаимозависимых проектов с помощью UCM.
я управляю и SCM (ClearCase и Подверсией) и действительно рекомендую Подверсию для малого и среднего независимый проекты.
Однако удостоверяются, что Ваши разработчики не привыкли к динамическим представлениям ClearCase: это - инкапсуляция файловой системы, разрешающей пользователю доступ файлы из сети. К моему знанию ClearCase является единственным с таким доступом.
И учитывают сдвиг парадигмы:
Я просто проводил прошлые несколько недель в своем новом задании, изучающем инструменты SCM (Software Configuration Management) и ALM (Application Lifecycle Management) для принятия, чтобы заменить CVS и поддерживать принятие Гибких.
при поиске чего-то, что будет поддерживать истинный SCM с параллельной разработкой и переходящий затем, существует, вероятно, больше альтернатив там, чем Вы понимаете.
Для простого решения SCM изучают следующее:
Все эти решения предлагают намного лучшую переходящую поддержку, чем ClearCase имеют исходно suppert понятия, такие как песочницы разработчика (вместо того, чтобы использовать те сумасшедшие представления в ClearCase), и снимки вирион. Esentially ответвление только для чтения, немного как базовая линия.
, Если у Вас есть обширное Рациональное развертывание, Вы могли бы хотеть изучить эти альтернативы:
Все вышеупомянутые решения поддерживают те же понятия SCM как Accurev и т.д., но являются, очевидно, больше вплотную продуктами и являются масштабом предприятия.
Мы сузили в этой точке наш выбор или к MKS или к Телелогике.
Моя самая большая точка на этом - то, что существуют многие, много решений там промежуточный ClearCase и CVS/подверсия, которые являются коммерческими, но relitvely дешевый.
Hope это было полезно.
Мне было бы интересно слышать о том, как Ваша структура ответвления настраивается.
, Почему пользователи работают над 'соединительной линией' Вашего продукта? (Я предполагаю, что это означает Ваше основное ответвление). Разве ответвления разработки не препятствовали бы тому, чтобы Ваши разработчики влияли на основную соединительную линию?
, Почему Вы не могли представить триггер на rmview сценарии, препятствующем тому, чтобы пользователи удалили представление при тихом наличии контроля? Это - вполне тривиальное осуществление, и существует много источников онлайн (и я уверен, что StackOverflow предоставил бы Вам ответы, если Вы спрашиваете!).
Другое предложение было бы, если Вам инвестировали наличные деньги уже в продукты IBM (таким образом готовый потратить деньги на коммерчески поддерживаемую среду SCM), Вы могли бы хотеть взглянуть на Концерт Команды и Джаз.
Что мне понравилось в ClearCase, что я не смог сделать так же хорошо или вообще в других инструментах SCM:
Я не возражаю, поддержка ClearCase - это кошмар, и будет стоить вам денег. Но после настройки он может обеспечить очень хорошую среду разработки. Особенно, когда вы начинаете интеграцию с ClearQuest (отслеживание дефектов, которое мы также использовали для отслеживания проверок кода).
Как заявил другой респондент, ответ для вас во многом зависит от потребностей вашего процесса.
обслуживание ClearCase - это кошмар, а будет стоить вам денег . Но как только он настроен, он может обеспечить очень хорошую среду разработки. Особенно, когда вы начинаете интеграцию с ClearQuest (отслеживание дефектов, которое мы также использовали для отслеживания проверок кода).Как заявил другой респондент, ответ для вас во многом зависит от потребностей вашего процесса.
обслуживание ClearCase - это кошмар, а будет стоить вам денег . Но после настройки он может обеспечить очень хорошую среду разработки. Особенно, когда вы начинаете интеграцию с ClearQuest (отслеживание дефектов, которое мы также использовали для отслеживания проверок кода).Как заявил другой респондент, ответ для вас во многом зависит от потребностей вашего процесса.
По-моему, вы будете счастливы в git / mercurial и, вероятно, не в SVN. OTOH, весь мой опыт работы с прозрачным кейсом был утомительным и нелюбимым, поэтому я считаю, что любое действие по побегу действительно очень хорошо.
Похоже, распределенные системы лучше соответствуют вашему рабочему процессу.
Я рекомендую прочитать HG Init - руководство Джоэла Спольски о том, как перейти с SVN на Mercurial.
Как уже упоминалось в предыдущих ответах, SVN и ClearCase в основном работают в одной парадигме, поэтому, читая статью, вы можете заменить все слова "Subversion" на "ClearCase" и применить их к своей ситуации.
Это статья, которая окончательно убедила меня начать использовать Mercurial на работе.