gpt4 book ai didi

java - Android中PrintWriterPrinter有什么用?

转载 作者:行者123 更新时间:2023-12-01 09:55:06 25 4
gpt4 key购买 nike

在 Android 开发者数据库的研究过程中,我偶然发现了 PrintWriterPrinter(在 android.util 中): https://developer.android.com/reference/android/util/PrintWriterPrinter.html

PrintWriterPrinter类的源代码如下所示:

package android.util;

import java.io.PrintWriter;

/**
* Implementation of a {@link android.util.Printer} that sends its output
* to a {@link java.io.PrintWriter}.
*/
public class PrintWriterPrinter implements Printer {
private final PrintWriter mPW;

/**
* Create a new Printer that sends to a PrintWriter object.
*
* @param pw The PrintWriter where you would like output to go.
*/
public PrintWriterPrinter(PrintWriter pw) {
mPW = pw;
}

public void println(String x) {
mPW.println(x);
}
}

正如您所看到的,它只有一个方法:println(String x),它本质上将 println 应用于传递的 PrintWriter。我的问题:如果我可以在 PrintWriter 对象上手动调用 println 而不是创建一个 PrintWriterPrinter 然后在其上调用 println (然后调用println 在 PrintWriter 上)?

最佳答案

关键是实现打印机

当您学习 Java 编程时,您了解了 Java interfaces 。类通过 implements 关键字声明它实现一个接口(interface); PrintWriterPrinter Implements Printer 表示 PrintWriterPrinter 实现 Printer 接口(interface)。

如果您查看 JavaDoc 中的 Printer 接口(interface),您将看到它定义了唯一的 println() 方法。但是,如果仔细观察,您会发现 JavaDocs 列出了该接口(interface)的四种实现:LogPrinterPrintStreamPrinterPrintWriterPrinter >StringBuilderPrinter

通过所谓的polymorphism ,其他代码可以使用已知实现 Printer 接口(interface)的对象 — 在该对象上调用 println() — 而无需知道或关心该对象背后的这四个实现中的哪一个。其他开发人员可以创建 Printer 接口(interface)的其他实现(例如,将最后 50 行存储在 ArrayList 中),而框架的其余部分则需要 >打印机可以毫无问题地使用该自定义实现。

关于java - Android中PrintWriterPrinter有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37298287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com