我是 Scala 的新手,我正在将一些 Java 代码转换为使用 Jackson 库处理 JSON 序列化的 Scala。我在 Jackson SimpleModule 实现中遇到了问题。
在 Java 中,我会这样做:
addSerializer(Enum.class, new LowerEnumSerializer());
我认为这就像在 Scala 中那样简单:
addSerializer(classOf[Enum], new LowerEnumSerializer())
但是,我的编译器抱怨:
scala:类枚举采用类型参数 addSerializer(classOf[Enum], new LowerEnumSerializer())
我猜这是因为 Java 的 Enum 看起来像:
public abstract class Enum<E extends Enum<E>>
有任何想法吗?
编辑
我不能使用 classOf[Enum[_]] 因为 addSerializer 方法如下所示:
public <T> SimpleModule addSerializer(Class<? extends T> type, JsonSerializer<T> ser)
编辑 2 我不能使用 classOf[Enum[_ <: Enum[_]],我得到:
Type mismatch, expected: JsonSerializer[_], actual: Class[Enum[_ <: Enum[_]]
JsonSerializer 看起来像:
public class LowerEnumSerializer extends StdScalarSerializer<Enum>