645じゃないけど。
例えばJavaで既存のライブラリ使っててイライラするのはこういう辺り。
Javaでプログラム組む時の設計思想としてクラスの責務をなるべく狭くするよね。
結果として細かいクラスが沢山できる。特にバリュークラスなんかが。
Stringそのままを使うのではなく、Stringをフィールドに持つnichan.res.Nameクラスが作られたりする。
で、Stringのサブクラスではないので、Stringのメソッドは使えないし、Stringを仮引数に持つメソッドにも渡せない、getName()で参照する事しかできない。
クラス設計者が想定した範囲外のことをやろうとすると、とても面倒になる。