В чем разница между FilterWriter и Writer в Java?
Из https://docs.oracle.com/javase/7/docs/api/java/io/Writer.html и https://docs.oracle.com/javase/7/docs/api/java/io/FilterWriter.html, я считаю, что FilterWriter
абстрактный класс, который расширяет Writer
и не имеет никаких дополнительных способов.
Мне просто интересно:
- Каково обоснование, чтобы определить
FilterWriter
как точная копияWriter
? - В чем разница между
FilterWriter
а такжеWriter
?
2 ответа
- Каково обоснование, чтобы определить
FilterWriter
как точная копияWriter
?
FilterWriter
не является точной копией Writer
, Хотя заявлено abstract
это обеспечивает реализацию всех Writer
Это абстрактные методы, и это переопределяет некоторые из конкретных методов. Эти реализации служат FilterWriter
Специальное назначение, как описано в его документации API:
Абстрактный класс FilterWriter сам по себе предоставляет методы по умолчанию, которые передают все запросы содержащемуся потоку. Подклассы FilterWriter должны переопределять некоторые из этих методов, а также могут предоставлять дополнительные методы и поля.
Класс является абстрактным, несмотря на отсутствие абстрактных методов, потому что описанная функциональность сама по себе не является полезной. Он предназначен для использования в качестве базового класса для классов, которые отслеживают или изменяют поток символов при его записи в базовый класс. Writer
,
- В чем разница между
FilterWriter
а такжеWriter
?
Функционально FilterWriter
обеспечивает конкретные реализации для Writer
Это абстрактные методы, и это отменяет некоторые другие. Тип-накрест, Writer
является суперклассом группы классов, которые FilterWriter
не является суперклассом, в том числе FilterWriter
сам.
FilterWriter
class является суперклассом всех классов записи, которые фильтруют вывод. Подкласс FilterWriter
работает, оборачивая существующего писателя, называемого лежащим в основе писателем, и предоставляя дополнительную функциональность. Методы FilterWriter
просто переопределить методы Writer
с версиями, которые вызывают соответствующие методы основного писателя.
FilterWriter
не может быть создан непосредственно; это должно быть подклассом. Экземпляр подкласса FilterWriter
построен с другим Writer
объект. Методы подкласса FilterWriter
следует переопределить некоторые методы, чтобы расширить их поведение или обеспечить некоторую фильтрацию.
FilterWriter
как FilterOutputStream
за исключением того, что он имеет дело с потоком символов вместо потока байтов.