public abstract class Writer implements Appendable, Closeable, Flushable {
/**
* Temporary buffer used to hold writes of strings and single characters
*/
private char[] writeBuffer;
/**
* Size of writeBuffer, must be >= 1
*/
private final int writeBufferSize = 1024;我只想将writeBufferSize设置为一个更大的数字。为什么设计师将其声明为最终版本?
发布于 2016-07-25 18:11:30
回答“为什么”没有意义:不管是好是坏,这就是它是如何实现的。
请注意,在Java8中,这现在是一个static final变量,甚至更强烈地表明它是一个常量,类的用户不能更改它。
请改用BufferedWriter。它有一个构造函数,允许您指定缓冲区大小:
Writer writer = ...;
BufferedWriter bw = new BufferedWriter(writer, aBiggerNumber);发布于 2016-07-25 18:45:50
只有原始的API设计者才能告诉你这一点。完全确定。
但另一方面,如果它不是常量,那么就有可能被设置为有害的值,无论是意外还是由于误解,或者(在不受信任的代码的情况下)故意破坏东西。
但正如@AndyTurner指出的那样,这是没有意义的……您可以很容易地构造一个使用不同写缓冲区大小的Writer子类。
https://stackoverflow.com/questions/38564809
复制相似问题