Jak zwrócić wartość null z funkcji ogólnej w Scali?
Piszę własne prostejavax.sql.DataSource
implementacja, jedyną metodą, której potrzebuję, jest pracagetConnection: Connection
, ale interfejs dziedziczy wiele innych metod (których nie potrzebuję)javax.sql.CommonDataSource
ijava.sql.Wrapper
. Chciałbym więc „zaimplementować” te niepotrzebne metody w taki sposób, aby nie działały, ale zachowują się w odpowiedni sposób, gdy zostaną wywołane. Na przykład implementujęboolean isWrapperFor(Class<?> iface)
tak jak
<code>def isWrapperFor(iface: Class[_]): Boolean = false </code>
i chciałbym wdrożyć<T> T unwrap(Class<T> iface)
tak jak
<code>def unwrap[T](iface: Class[T]): T = null </code>
Ale ostatni nie działa: kompilator zgłasza niezgodność typów.
Czy będzie właściwe używanienull.asInstanceOf[T]
Czy jest jakiś lepszy sposób? Oczywiście rozważam tylko rzucanieUnsupportedOperationException
zamiast tego w tym konkretnym przypadku, ale IMHO pytanie może być wciąż interesujące.