Вы можете использовать условную компиляцию , чтобы получить отладочную сборку с операторами print и сборку выпуска без них.
По сути, идея заключается в создании окончательного статического класса с окончательным статическим логическим значением, которое вы используете в качестве переключателя во время компиляции.
public final class Debug {
//set to false to allow compiler to identify and eliminate
//unreachable code
public static final boolean ON = true;
}
Тогда вы можете просто заменить все ваши System.out.println
заявления на
if(Debug.ON)
{
System.out.println...
}
Поскольку компилятор будет игнорировать любые недоступные ветви кода, вы можете просто установить ON = false
, когда будете выполнять сборку релиза, и операторы печати будут исключены из вашего байт-кода.
Примечание: Это не касается случая, на который указал Оскар , когда оператор print может изменить состояние какого-либо объекта. Вы можете использовать условную компиляцию для печати на нулевом объекте, когда он находится в режиме выпуска, как он предложил, вместо полного удаления отпечатков.