java - 如何扩展一个 java 类来扩展 Scala 中另一个类的类型参数?

标签 java scala oop inheritance parameterized-types

假设我有一个 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/

相关文章:

java - 在 JBoss 配置中加密敏感信息

scala - Spark : normalize each row of a DataFrame

scala - 您将如何更改此 Akka Streams 示例以获得物化值 Future[ServerBinding]?

java - Model对象的抽象合理吗?

java - 处理数组中的对象时出现越界

php - 如何从同一个类的静态方法调用非静态方法?

java - 为什么 Java 值对象会以 Generic Flex 对象的形式回归?

java - 运行时多态性

java - Eclipse 删除注释、断点并修复缩进

java - 如何在Scala中实现扩展Comparable且没有特定类型的Java接口(interface)?