|
Java-приложение: заглянем внутрьТак же как и предыдущие классы, Debug не допускает создания своих экземпляров оператором new, и все его методы описаны как static, чтобы их нельзя было употреблять в отрыве от имени класса (см. Листинг 5). Листинг 5. Создание класса Debug package Mitrich.utils; /** * Данный класс играет роль флага разрешения * или запрещения мониторинга */ public final class Debug { /** * По умолчанию трассировка выключена */ private static boolean onFlag = false; /** * Не дает создать экземпляр класса */ private Debug() { } /** * Возвращает состояние флага мониторинга * @return boolean */ public static boolean isOn() { return Debug.onFlag; } /** * Сбрасывает флаг состояния мониторинга */ public static void off() { Debug.onFlag = false; } /** * Устанавливает флаг состояния мониторинга */ public static void on() { Debug.onFlag = true; } } И вот мы вплотную подошли к основному классу нашей маленькой библиотеки, который, собственно, и выполняет мониторинг. Два его метода - err() и out() - пересылают данные соответственно в поток ошибок и поток вывода. Но, как показывает исходный текст (см. Листинг 6), эти операторы перегружены, благодаря чему они могут выводить в поток данные любого типа. Листинг 6. Создание основного класса, выполняющего мониторинг package Mitrich.utils; import java.io.PrintStream; /** * Данный класс сделан для удобства мониторинга данных. */ public final class TraceTo { static StdStreams streams = new StdStreams(); /** * Предотвращает создание экземпляров класса */ private TraceTo() { } /** * Выводит данные параметра value в поток ошибок * @param value char[] */ public static void err(char[] value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param value byte */ public static void err(byte value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param value char */ public static void err(char value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param value double */ public static void err(double value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param value float */ public static void err(float value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param value int */ public static void err(int value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param value long */ public static void err(long value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param msg java.lang.Object */ public static void err(Object value) { if(Debug.isOn()) streams.getErr().println(value.toString()); } /** * Выводит данные параметра value в поток ошибок * @param msg java.lang.String */ public static void err(String value) { if(Debug.isOn()) streams.getErr().print(value); } /** * Выводит данные параметра value в поток ошибок * @param value short */ public static void err(short value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Выводит данные параметра value в поток ошибок * @param value boolean */ public static void err(boolean value) { if(Debug.isOn()) streams.getErr().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value char[] */ public static void out(char[] value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value byte */ public static void out(byte value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value char */ public static void out(char value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value double */ public static void out(double value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value float */ public static void out(float value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value int */ public static void out(int value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value long */ public static void out(long value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param msg java.lang.Object */ public static void out(Object value) { if(Debug.isOn()) streams.getOut().println(value.toString()); } /** * Пересылает данные параметра value в поток вывода * @param msg java.lang.String */ public static void out (String value) { if(Debug.isOn()) streams.getOut().print(value); } /** * Пересылает данные параметра value в поток вывода * @param value short */ public static void out(short value) { if(Debug.isOn()) streams.getOut().println(value); } /** * Пересылает данные параметра value в поток вывода * @param value boolean */ public static void out(boolean value) { if(Debug.isOn()) streams.getOut().println(value); } } Продолжение статьи: ч.1 Продолжение статьи: ч.2 Продолжение статьи: ч.3 Продолжение статьи: ч.4 Продолжение статьи: ч.5 Продолжение статьи: ч.6 Другие статьи по теме: - Java: управление ресурсами- Java-приложение: заглянем внутрь - Java. объектно-ориентированное программирование с интерфейсами - учим java. этап первый: подготовительный - революция java |
|
2006-2024 © SMTI.RU Главная страница | Связаться с нами |