Как пометить код java так, чтобы он не компилировался [duplicate]

На этот вопрос уже есть ответ здесь:

Мне интересно, есть ли в Java эквивалент для

#if 0
... Some Code ...
#endif

C, который можно использовать вокруг блоков кода, которые мы не хотим компилировать. Добавление блочных кавычек:

/*
... Some Code ...
*/

также имеет тот же эффект, но проблема в том, что мы должны убедиться в отсутствии однострочных комментариев

// some comment

в блоке.

23
задан Code Poet 28 November 2011 в 08:21
поделиться

3 ответа

Есть несколько решений:

  1. Использовать препроцессор - я думаю, что он будет работать со стандартным CPP. Существовали некоторые специфические для Java пропроцессоры, такие как jappo и java + , которые можно попробовать

  2. Заменить #if 0 на true, если:

    if ( false) {code}

Условие может быть уточнено путем запроса системных свойств:

 if(System.getProperty("NO_COMPILE").equals("true")) {
    code
  } 

Это имеет то преимущество, что его можно легко установить либо из ANT или из Затмения.

РЕДАКТИРОВАТЬ : Пожалуйста, отметьте, что если код действительно будет скомпилирован и представлен в файлах .class. Более того, хотя запрос к системным свойствам более элегантен, он выполняется во время выполнения, а не во время компиляции, и поэтому не совсем соответствует первоначальному требованию. If (false) на 2-м месте лучше.

EDIT2 : еще лучшее решение, которое я только что нашел: http://prebop.sourceforge.net/

4
ответ дан 29 November 2019 в 02:00
поделиться

вы можете просто использовать Java Preprocessor, и я думаю, что это будет лучше, чем флаги http://code.google.com/p/java-comment-preprocessor/ флаги, конечно, позволяют вырезать и добавлять блоки на этапе компиляции, но препроцессор позволяет сделать процесс намного более гибким

1
ответ дан 29 November 2019 в 02:00
поделиться

Вместо того чтобы пытаться сделать код условным с помощью предварительной обработки исходного кода (как это делает C), используйте объектно-ориентированное программирование: используйте шаблоны проектирования, такие как Стратегия, и внедрение зависимостей, чтобы сделать код условным.

-1
ответ дан 29 November 2019 в 02:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: