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 に答える