Я пишу свою собственную простую реализацию 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 вопрос может быть интересным.