C#的扩展方法非常适合添加语法糖。 Java扩展方法非常适合允许库开发人员向其接口添加方法。Java有没有办法让非库开发人员使用扩展方法?
我是一个非库Java开发人员,知道我会从库中获取新功能中获得很多好处,但我仍然希望拥有C#扩展方法的语法糖能力。
这是,还是将在未来版本的Java中可能?
如:我想方法添加到String类...
String data = StringUtils.capitalize("abcd"); // instead of this
String data = "abcd".capitalize() // I would like to do this
请不要集中在这个特殊的例子,我只显示类的功能,我希望能够以实现。
Java没有一种以这种方式扩展类的“凡人”机制。使用某些调试工具可以使用一些技巧,但它们不适用于调试场景以外的用途。 –
请注意,通常“库开发人员”和“应用程序开发人员”(至少在Java世界)之间没有硬性界限。如果给定的功能可用于库,那么它也可用于应用程序。当然,一些功能的复杂性使它更有可能在图书馆中使用。例如:*编写*在复杂场景中充分利用泛型的API非常困难,因此通常只能在(可重用的)库中完成。 *使用*这样的API更容易(如果API是精心设计的)。 –