Следующий Groovy код печатает "все работает"
def printIt(Class<? extends Exception> clazz) {
println "it works"
}
printIt(String.class)
, хотя параметр не удовлетворяет ограничению Class<? extends Exception>
Насколько я понимаю, это потому что:
- Стирание типов в обобщенных типах Java означает, что нет проверки универсальных типов во время выполнения
- В Groovy нет проверки типов во время компиляции
Эти две точки означают, что в Groovy практически нет проверки ограниченных универсальных типов. Есть ли способ проверить (во время выполнения), что объект Class
, переданный в printIt
, удовлетворяет ограничению ? extends Exception
Спасибо,
Дон