然而,在我开始之前...... - 从字面上看,这就是我写的所有代码:
package com.my.package;
public class SBuffer extends StringBuffer
{
}
Eclipse给了我这个错误:
The type SBuffer cannot subclass the final class StringBuffer.
所以,StringBuffer是一个FINAL类,看起来我在开始之前就已经很好了。我想我应该问(比我更有知识的)社区提出一些解决这个问题的建议。
有什么想法吗?
答案 0 :(得分:3)
解决方法是从here获取源代码(至少来自标准JDK)并将代码复制到您的类中并扩展它
答案 1 :(得分:3)
您需要复制StringBuffer
和 AbstractStringBuilder
,更改各自的套餐,并修改StringBuffer
以执行您想要的操作。
您无法简单地复制/修改StringBuffer
,因为它扩展了AbstractStringBuilder
而后者是包私有。
另一种方法可能是创建Appendable
和CharSequence
的自定义子类。这使您可以选择省略您不需要的StringBuffer
功能,这可能会对您的特定用例中的性能造成损害。
您的类不能成为真实StringBuffer
类的子类这一事实意味着不再需要模仿StringBuffer
API或符合其行为。