8

C# 的扩展方法非常适合添加语法糖。Java 扩展方法非常适合允许库开发人员向他们的接口添加方法。

我是一名非库 Java 开发人员,我知道从库中获取新功能会带来很多好处,但我仍然希望拥有 C# 扩展方法的语法糖功能。

是这样,还是在未来的 Java 版本中会这样?

例如:我想向 String 类添加方法...

String data = StringUtils.capitalize("abcd");  // instead of this
String data = "abcd".capitalize()  // I would like to do this

请不要专注于这个特定的示例,我只是展示我希望能够实现的功能类别。

4

2 回答 2

5

Java 没有这个特性,也不太可能很快拥有它。

然而, Groovy确实有一个非常相似的特性,它也可以在 JVM 上运行。也许这是一个选择。

于 2012-10-29T16:06:14.537 回答
2

我怀疑您正在考虑对 Java 8 进行计划添加,它允许您向接口添加具有默认实现的方法——这样您就可以在不破坏所有现有代码的情况下添加新方法。如果您控制接口类型,这仅对您有用 - 所以它不会用于String,因为String它不是接口。

于 2012-10-29T16:24:24.897 回答