-3

除了使用传统的多态性... extends LinkedList<T>有没有办法在 Java 中重载诸如 String、List 或自定义 MyClass 类之类的类?.

theList.doRandomShuffle(123); or theList.persistOnFile("fileName");

如果可能的话,混合 C 代码来实现这一点是在桌面上的。任何进一步的建议都会很有用。

更新:好的。字符串类不是一个很好的例子。目的是在不声明新列表MyList extends LinkedList<T>或为所需函数创建实用程序类的情况下扩展类。我正在消除两种扩展实现的可能性,并询问是否有更多选择,即使它是核心。

除此之外的原因是质疑是否可以扩展类,特别是对于 jar 库而不适应 LinkedList impl 的新扩展类。任何。我对没有人确切知道的社区感到非常失望,认为即使是提问也应该开箱即用

4

4 回答 4

1

在 Java 中,您不能将方法添加到已定义的类(例如 String)。但是,如果该类不是final,您可以扩展它以创建自定义方法。

(从技术上讲,您可以向已定义的类添加方法,但这很麻烦,并且违反了 Java 的使用条款和条件。)

于 2012-10-11T03:16:56.580 回答
0

您不能覆盖 String 行为,因为该类是最终的。当然,您可以使用自定义类来执行此操作。你能更具体地说明你想要做什么吗?

没有办法做出任何一个示例语句

String.doFunyStuff(123); "doFunny".onMe(1);

在java中合法。

于 2012-10-11T03:14:13.283 回答
0

String 类是最终类,不能扩展它。

于 2012-10-11T03:14:34.377 回答
0

不,Java 不支持C# 中的扩展方法之类的东西。您可以做的最好的事情是定义一个静态方法,该方法将 aString作为参数,然后对其进行操作,可能返回 a String。由于String是一个不可变的类,因此除了语法之外,应该与您尝试实现的目标没有区别。

于 2012-10-11T03:15:12.720 回答