Скажите, у меня есть этот класс:
case class Person(name: String, age: Int)
Я хочу отразить класс во время выполнения, используя отражение Java (не Scala). (Это потому, что я работаю над библиотекой Dotty, которая имеет stati c, но не отражение во время выполнения.)
Я могу знать типы аргументов моего конструктора: java .lang. Строка и Scala .Int. Но когда я размышляю о Личности:
classOf[Person].getConstructors.toList
// List(public com.mypkg.sub.Person(java.lang.String,int))
Видите это "int" там? Это приводит к тому, что я не могу найти соответствующий конструктор. Используя Java отражение в классе, я могу искать конструктор, если знаю типы. Как я могу попросить Int? В некоторых публикациях в других местах предлагается использовать Integer.TYPE, но это разрешает Scala .Int для меня.
Как мне успешно позвонить clazz.getConstructor(???)
?