私は自分自身の単純なjavax.sql.DataSource実装を書いています。動作する必要がある唯一のメソッドは ですgetConnection: Connectionが、インターフェイスは と から他の多くのメソッド (必要ありません) を継承していjavax.sql.CommonDataSourceますjava.sql.Wrapper。したがって、これらの不要なメソッドを、実際には機能しないが、呼び出されたときに適切な方法で動作するように「実装」したいと思います。たとえば、私は次のように実装boolean isWrapperFor(Class<?> iface)します
def isWrapperFor(iface: Class[_]): Boolean = false
そして、私は次のように実装<T> T unwrap(Class<T> iface)したいと思います
def unwrap[T](iface: Class[T]): T = null
しかし、最後のものは機能しません。コンパイラは型の不一致を報告します。
使用するのは正しいnull.asInstanceOf[T]でしょうか、それともより良い方法はありますか? もちろんUnsupportedOperationException、この特定のケースでは代わりにスローすることを検討しますが、IMHO の質問は依然として興味深い場合があります。