Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
aquaMakc
476 / 389 / 68
Регистрация: 14.02.2014
Сообщений: 1,892
Завершенные тесты: 1
1

Нужна альтернатива директивам препроцессора СИ-образных языков

26.01.2018, 10:01. Просмотров 382. Ответов 3

Доброго времени суток.
Появилась необходимость в специальном функционале строго для определённых сборок программы. Например, для тестовых версий - вывод в специальное окно отладочной информации.
В языках C/C++/C# я обычно указывал что-то типа:
C#
1
2
3
#ifdef DEBUG
// какой-то тестовый функционал, который не будет компилироваться в релиз
#endif
В Java препроцессора нет, но аналогичный функционал иметь хочется.
Есть, конечно, вариант - объявлять какую-то константу и if`ом её проверять, но тогда и сама константа будет в коде и функционал будет компилироваться. Эту константу может понадобится проверять в нескольких модулях, а значит надо как-то к ней предоставлять публичный доступ, что повышает связанность и т.д. Может есть возможность это делать проще?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2018, 10:01
Ответы с готовыми решениями:

Вопрос по директивам препроцессора
Использую VS 2008. Работал с микроконтроллерами PIC с компилятором HI-TECH, так вот, там была...

Нужна поддержка со сборкой пк! Бюджета не хватает нужна альтернатива
Накинул я пк, оцените пожайлуйста. Проверьте на совместимость и тд. Материнка:...

Нужна альтернатива .dat файлам
Привет всем. Подскажите, пожалуйста, альтернативу файлам с расширением dat.

Нужна бесплатная, но адекватная альтернатива фотошопу
Здравствуйте. Веб-разработчик, ФШ ползуюсь для нарезки макета, при необходимости небольшое...

Используется Take() из System.Linq; нужна альтернатива в .NET 2.0
Здраствуйте! Изпользуется Take() из System.Linq;, нужна альтернатива в .NET 2.0 Естя какие...

3
Faiotti
29 / 30 / 15
Регистрация: 24.01.2018
Сообщений: 132
26.01.2018, 11:02 2
Константа
Java
1
BuildConfig.DEBUG
уже есть изначально.

Добавлено через 1 минуту
И вроде можно настроить компилятор, чтобы не компилировал недостижимый код.

Добавлено через 55 секунд
В крайнем случае писать свою тулзу (как вариант - baksmali, парсинг-редактирование и снова smali), но это вряд ли оправданно.
0
aquaMakc
476 / 389 / 68
Регистрация: 14.02.2014
Сообщений: 1,892
Завершенные тесты: 1
26.01.2018, 11:08  [ТС] 3
Пока реализовал так:
Есть у меня синглтон Helpers с разными универсальными плюшками, которые могут пригодиться в разных местах кода.
Туда добавил булеву константу и публичный геттер.
В нужных местах обращаюсь к этому классу, спрашиваю в каком состоянии константа и выполняю тот или иной код.
Не уверен, что это можно отнести к Best Practices, но задачу выполняет.
Есть есть идеи лучше - буду благодарен.
0
Faiotti
29 / 30 / 15
Регистрация: 24.01.2018
Сообщений: 132
26.01.2018, 11:10 4
Ответ выше.
0
26.01.2018, 11:10
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2018, 11:10

Директивы препроцессора Составить программу, использующую директивы препроцессора
1) Задать константы M1,M2,...,M5 и вычислить M1+ 2M2 + 3M3 + 4M4 + 5M5 2) С помощью директив #if,...

Высота блока не поддается директивам CSS
На основе типового скрипта, найденного в сети, сделана всплывающая форма отправки письма с сайта. ...

Игра на составление Г-образных линий на поле
Я занялась программированием, и мне нужно написать игру четыре в ряд, это что-то наподобие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru