Java中的类重载 - 是否可能?

时间:2012-10-11 03:11:51

标签: java compiler-construction syntax

除了使用传统的多态... extends LinkedList<T>之外,是否有一种方法可以在Java中使用String,List或自定义MyClass类重载类?

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

如果可能的话,混合C代码来实现这一目标。任何进一步的建议都会有用。

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

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

4 个答案:

答案 0 :(得分:1)

在Java中,您无法向已定义的类(如String)添加方法。但是,如果该类不是final,则可以将其扩展为创建自定义方法。

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

答案 1 :(得分:0)

您无法覆盖String行为,因为该类是final。当然,您可以使用自定义类来执行此操作。你能更准确地了解你想要做什么吗?

无法制作任何一个示例语句

String.doFunyStuff(123);  “doFunny” .onMe(1);

在java中合法。

答案 2 :(得分:0)

Class String是一个final类,你不能扩展它。

答案 3 :(得分:0)

不,Java不支持C#中的extension methods之类的内容。您可以做的最好的事情是定义一个静态方法,该方法将String作为参数然后对其进行操作,可能返回String。由于Stringimmutable class,因此除了语法之外,与您尝试实现的内容不应有任何区别。