假设我有一个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,或通过super调用基本Ctor) - 我仍然会收到编译错误:
&#34;未指定的值参数:class [_&lt; C]&#34;
无法找到定义我的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 {}
任何帮助都会很棒!
答案 0 :(得分:1)
- 已解决 -
发现在Scala中使用“classOf”(在java中是.class)的方法如下:
class A() extends B(classOf[C]) {}
或在我的代码中:
class CustomDateTimeDeserializer() extends DateTimeDeserializer(classOf[DateTime]) {
...
}