私は自分自身の単純な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 の質問は依然として興味深い場合があります。