0

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

package com.my.package;

public class SBuffer extends StringBuffer
{

}

Eclipse 给了我这个错误:

The type SBuffer cannot subclass the final class StringBuffer.

所以,StringBuffer 是一个 FINAL 类,在我开始之前,我似乎已经很沉了。我想我应该向(比我知识渊博的)社区寻求一些解决此问题的建议。

有任何想法吗?

4

2 回答 2

3

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

于 2012-11-29T14:14:01.517 回答
3

您需要复制StringBuffer and AbstractStringBuilder,更改它们各自的包,并修改StringBuffer为您想要的。

您不能简单地复制/修改StringBuffer,因为它扩展AbstractStringBuilder并且后者是包私有的。


另一种方法可能是创建 and 的自定义子AppendableCharSequence。这使您可以选择StringBuffer省略不需要的功能,并且在您的特定用例中可能对性能有害。

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

于 2012-11-29T14:17:53.220 回答