Я работаю с JAX-RS в Scala и пытаюсь параметризовать вызов:
val jc = JAXBContext.newInstance(classOf[MyClassName])
Я использую ClassManifests согласно ответу здесь , но у меня естьпара вещей, с которыми я все еще борюсь.В качестве фона все мои представления JAX-RS расширяют класс представления заглушки:
class Representation {}
class ExampleRepresentation extends Representation { ... }
До сих пор я определил свою функцию, используя ClassManifest, вот так:
def get[R: ClassManifest](representation: R): String = {
val jc = JAXBContext.newInstance(classManifest[R].erasure)
...
}
Мой первый вопроснемного глупо: как мне вызвать эту функцию?Я не могу понять, что передать get () для типа R и значения представления (принятый ответ на исходный вопрос не проясняет это).Я пробовал неявную типизацию в соответствии с комментарием парадигмы, но ниже выдает ошибку компиляции:
get(PlatformRepresentation)
Compiling main sources...
not found: value PlatformRepresentation
Мой второй вопрос: возможно ли применить верхний предел типа к объекту R?Другими словами, я знаю, что:
R <: Representation
Есть ли способ ограничить это в объявлении типа ClassManifest get ()?
Большое спасибо!