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设置为更大的数字。为什么设计师宣称它是最终的?
答案 0 :(得分:1)
没有必要回答"为什么":无论好坏,以及它是如何实施的。
请注意,在Java 8中,现在这是一个static final
变量,更强烈地表明它是一个常量,并且不能由该类用户更改。
请改用BufferedWriter
。这有一个构造函数,允许您指定缓冲区大小:
Writer writer = ...;
BufferedWriter bw = new BufferedWriter(writer, aBiggerNumber);
答案 1 :(得分:1)
只有原始API设计师可以告诉您。完全确定。
但另一方面是,如果它不是常数,那么就有可能将其设置为有害值,无论是偶然还是由于误解,或者(在不受信任的代码的情况下) )故意破坏事物。
但正如@AndyTurner所指出的那样,这是没有意义的......你可以轻松构建一个使用不同写缓冲区大小的Writer
子类。