передача директив прекомпиляции в javac? - PullRequest
1 голос
/ 03 марта 2010

Я пишу приложение для рабочего стола и j2me. У меня есть отладочные операторы в программе. В настоящее время, чтобы избежать компиляции, я использую следующее. Мы делаем это, чтобы уменьшить размер банки. (Специально для мобильных)

ConstantFile.java
Boolean ConstantFile.DebugEnabled = false;

if(ConstantFile.DebugEnabled) {
log.debug("msg");
}

Но это жесткое кодирование. Есть ли альтернатива, например C, где у нас есть предварительно скомпилированные директивы. Может ли здесь помочь аннотация? Или что-то еще, что я должен искать?

Ответы [ 3 ]

2 голосов
/ 03 марта 2010

Нет, в Java нет прекомпиляции, но вместо использования файла констант, который вы используете в настоящее время, попробуйте Log4j или какой-либо другой пакет журналирования, который поддерживает операцию isDebugEnabled (). Это позволит избежать жесткого кодирования в пользу файла конфигурации или аргумента виртуальной машины.

0 голосов
/ 17 марта 2010

Я получил точный ответ, который хотел. Препроцессор. По аналогии с предложенным hatchetman82, есть задача wtkpreprocess. И его специально для мобильных устройств. (Хотя это может быть использовано и для другой части Java). И это работает отлично. Он комментирует строку, поэтому байт-код остается более светлым.

0 голосов
/ 03 марта 2010

Аннотации могут работать, или вы можете посмотреть на АОП. АОП позволит вам автоматически вставлять код в ваши методы в определенных точках. В любом случае вы должны получить то, что хотите.

...