假设我有一个 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) - 我仍然收到编译错误:
"unspecified value parameters: 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 {}
任何帮助都会很棒!
最佳答案
-- 已解决 --
发现Scala中的实现方法是使用“classOf”(在java中是.class),如下所示:
class A() extends B(classOf[C]) {}
或者在我的代码中:
class CustomDateTimeDeserializer() extends DateTimeDeserializer(classOf[DateTime]) {
...
}
关于java - 如何扩展一个 java 类来扩展 Scala 中另一个类的类型参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29457697/