首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一种改进的StringBuffer - Java.Lang

一种改进的StringBuffer - Java.Lang
EN

Stack Overflow用户
提问于 2012-12-11 19:27:23
回答 4查看 301关注 0票数 1

我想创建我自己的StringBuffer,它在java.lang.StringBuffer中添加了2-3个方法。由于原始类是final类,所以我不能扩展该类。

现在,如果我将类复制粘贴到我自己的类中,那么它会显示'AbstractStringBuilder is not visible‘错误。

如何在我自己的命名空间中扩展这个类(比如com.util)。

EN

回答 4

Stack Overflow用户

发布于 2012-12-11 19:30:25

我会和StringBuilder rather than StringBuffer一起工作。

不幸的是,您不能实现表示StringBuilder的接口(除非Appendable合适?)。您是否尝试过创建包含StringBuilder作为成员的EnhancedStringBuilder类。然后,您可以委托大多数(所有?)调用它,并提供您自己的。

另一种选择是简单地take the OpenJDK source code for StringBuilder并重新打包和增强它。我认为许可证会允许这样做,但我不熟悉你的情况,你应该检查这个。

票数 6
EN

Stack Overflow用户

发布于 2012-12-11 19:31:11

为此,我个人会使用decorator pattern -一个包装原始StringBuilder的类,然后提供额外的方法以供适当使用。

如果您只想再添加几个方法,那么您可能还需要考虑使用等效的静态方法来完成这项工作。

(正如其他人所提到的,StringBuilder是比StringBuffer更好、更有效的选择,除非您确实需要后者提供的线程安全性。)

简单地复制和粘贴代码并不是一个好主意,您可能会违反许可规则并复制功能(即使该功能位于原始API中)。

票数 6
EN

Stack Overflow用户

发布于 2012-12-11 19:29:46

抛开潜在的许可问题不谈,我不建议仅仅为了添加几个方法而复制和粘贴源代码。相反,我建议将这些方法设置为static,并将它们放入帮助器类(称为StringBuilderUtils或类似的类)。

这些方法将使用StringBuilderStringBuffer的实例(如果可以用Appendable实现功能,甚至可以使用Appendable )。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13819387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档