Java使いから見たC#(1) -拡張メソッド-

仕事でC#を強いられているのでC#について思ったことを飽きるまで書きためてみます。
一回目は拡張メソッド(extention methods)。

JavaではStringクラスがfinalで定義されているため、Stringクラスを派生させて新しい機能(method)を持たせることはできません。
Stringクラスには最初からいくつかのメソッドが用意されているのですが、機能としては不十分で、StringUtilsといったUtiltyクラスを作成して使用することが一般的になっています。

Utilityクラスのメソッドを見た目上、インスタンスメソッドとして使用することが出来るようになる機能が拡張メソッドです。

拡張メソッドについて詳しくはこちら(ぇー

見ての通り、Javaでも単純な文字列痴漢置換程度でコンパイラに組み込む事ができるはずなのですが、組み込んでくれないのでしょうか?
ちなみに、Java8から組み込まれるdefault methodについて、virtual extension methodsとも呼ばれているようです。

ほかの言語の全くの別機能に似せた名前をつけているなんて・・・・・・
なんだかなぁ。
ググラビリティの低下が懸念されます。。。