除了使用传统的多态... extends LinkedList<T>
之外,是否有一种方法可以在Java中使用String,List或自定义MyClass类重载类?。
theList.doRandomShuffle(123); or theList.persistOnFile("fileName");
如果可能的话,混合C代码来实现这一目标。任何进一步的建议都会有用。
更新:好的。 String类不是一个很好的例子。目的是在不声明新列表MyList extends LinkedList<T>
或为所需函数创建实用程序类的情况下扩展类。我正在消除两种可能的扩展来实现并询问是否有更多选项,即使它是硬核。
除此之外的原因是质疑是否可以扩展类,特别是对于jar库而不适应LinkedList impl的新扩展类。任何。我真的对社区感到失望,没有人确切知道,认为即使质疑也应该开箱即用
答案 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
。由于String
是immutable class,因此除了语法之外,与您尝试实现的内容不应有任何区别。