Предположим, что у меня есть класс Java A, который расширяет параметризованный тип класса B (параметризованный для C):
public class A extends B <C> {
public A (Class<? extends C > data) {
super((Class<C>) data);
}
}
Теперь скажем, что у меня есть другой класс Scala, D, который хочет расширить класс A.
class D extends A {
.... }
Независимо от того, что я пытаюсь передать классу D (в самом объявлении или в Ctor ниже него, или путем вызова базы Ctor через super) - я все равно получаю ошибку компиляции:
"неопределенные значения параметров: class [_ <C]"
Не удалось найти правильный способ определения моего класса Scala D.
для любого случая, реальный код (с использованием com.fasterxml.jackson):
public class DateTimeDeserializer extends
JodaDeserializerBase<ReadableInstant> {
public DateTimeDeserializer(Class<? extends ReadableInstant> cls) {
super((Class<ReadableInstant>)cls);
}
...
}
и scala:
class CustomDateTimeDeserializer extends DateTimeDeserializer {}
Любая помощь будет замечательной!
- SOLVED -
Обнаружено, что способ сделать это в Scala использует "classOf" (в java это.class) следующим образом:
class A() extends B(classOf[C]) {}
или в моем коде:
class CustomDateTimeDeserializer() extends DateTimeDeserializer(classOf[DateTime]) {
...
}
+C
).