Доброго день всем, я пишу код для списка пользовательского массива примитивных ИНТА с (чтобы избежать накладных расходов по боксу), список массива примитивных байт с, списком массива примитивных длинных с , список массивов примитива char s и список массивов примитива double s.Есть ли инструмент для ручной работы по копированию + вставка + замена исходного кода?
Код для этих 5 классов: очень. В принципе логика (почти) идентична. Однако, поскольку дженерики не могут быть использованы, невозможно определить общие общие функции, используемые для всех 5 классов (исправьте меня, если я ошибаюсь).
В результате я должен дублировать один и тот же код 5 раз, выполняя строковый поиск, заменяя каждый раз. Проблема возникает, когда мне приходится редактировать классы, потому что я должен делать то же самое редактирование x5 раз.
Теперь мне было интересно, что лучше всего поддерживать повторяющийся шаблонный код вот так?
Есть ли инструмент, который может выполнять ручную работу по копированию + вставка + замена?
(например, я мог бы определить функцию преобразования F() и сказать инструмент: для исходного кода класса mypackage.IntArrayList
, применим преобразование F() на исходный код классов mypackage.ByteArrayList
, mypackage.LongArrayList
, mypackage.CharArrayList
и mypackage.DoubleArrayList
) ?
Да, бокс, это моя ошибка :) – Pacerier
Да, это то, m look for, инструмент генерации/преобразования кода. Какой инструмент использовал Trove? – Pacerier
@Pacerier: Я написал * «custom» * в своем ответе, потому что, насколько мне известно, Trove использовала свое собственное средство генерации кода/шаблонирования, но я не уверен: долгое время я не смотрел на источник. Но это все с открытым исходным кодом, поэтому просто загрузите Trove и убедитесь, что это то, что вы хотите (черт возьми, вы даже можете использовать пользовательскую, используемую Trove). – TacticalCoder