我是一个新手Scala,并且我正在将一些使用Jackson库处理JSON序列化的Java代码转换为Scala。我在Jackson SimpleModule实现中遇到了一个问题。
在Java中,我会这样做:
addSerializer(Enum.class, new LowerEnumSerializer());
我以为这个问题像在Scala中做这样容易:
addSerializer(classOf[Enum], new LowerEnumSerializer())
然而,我的编译器报错了:
scala: class Enum takes type parameters 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>
classOf [Enum [_]]
,这类似于Java的Enum <?>
? - om-nom-nom