我想在Android中扩展StringBuffer类

时间:2012-11-29 14:03:34

标签: java android

然而,在我开始之前...... - 从字面上看,这就是我写的所有代码:

package com.my.package;

public class SBuffer extends StringBuffer
{

}

Eclipse给了我这个错误:

The type SBuffer cannot subclass the final class StringBuffer.

所以,StringBuffer是一个FINAL类,看起来我在开始之前就已经很好了。我想我应该问(比我更有知识的)社区提出一些解决这个问题的建议。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

解决方法是从here获取源代码(至少来自标准JDK)并将代码复制到您的类中并扩展它

答案 1 :(得分:3)

您需要复制StringBuffer AbstractStringBuilder,更改各自的套餐,并修改StringBuffer以执行您想要的操作。

您无法简单地复制/修改StringBuffer,因为它扩展了AbstractStringBuilder而后者是包私有。


另一种方法可能是创建AppendableCharSequence的自定义子类。这使您可以选择省略您不需要的StringBuffer功能,这可能会对您的特定用例中的性能造成损害。

您的类不能成为真实StringBuffer类的子类这一事实意味着不再需要模仿StringBuffer API或符合其行为。