Я хотел бы найти решение для компиляции, чтобы удалить метод finalize моих классов в соответствии с флагом. Это делается для того, чтобы избежать performances issues с GC.#ifdef для Java, чтобы удалить функцию завершения во время компиляции
Моя система сборки ANT.
В принципе, я хочу эквивалент этой C-препроцессора макрос:
#ifdef USE_FINALIZE
protected finalize() {
...
}
#endif
Возможно ли это в Java?
Как мой проект использует JNI, я должен освободить родные объекты в 'finalize'. Хотя я не сравнивал это, я думаю, что это может сильно снизить производительность в моем случае (много jni => java calls + GC за короткий период времени). Таким образом, согласно вашей ссылке с javadoc, лучшее решение известно, чтобы реализовать «финализацию» и полагаться на статический флаг для выполнения или не действия нативного удаления. Отличный ответ, это именно то, что я хотел. –