我是Scala的新手,我將一些Java代碼轉換爲使用Jackson庫來處理JSON序列化的Scala。我在Jackson SimpleModule實現中遇到了一個問題。如何獲得scala中的java.lang.Enum類?
在Java中,我這樣做:
addSerializer(Enum.class, new LowerEnumSerializer());
我認爲這將是在斯卡拉這樣做很容易:
addSerializer(classOf[Enum], new LowerEnumSerializer())
然而,我的編譯器抱怨:
scala:class Enum需要類型參數addSerializer(classOf [Enum],new LowerEnumSerializer())
我猜測,這是因爲Java的枚舉的樣子:
public abstract class Enum<E extends Enum<E>>
任何想法?
EDIT
我不能使用classOf [枚舉[_]],因爲該方法addSerializer看起來像這樣:
public <T> SimpleModule addSerializer(Class<? extends T> type, JsonSerializer<T> ser)
編輯2 我不能使用classOf [枚舉[_ <:Enum [_]],我得到:
Type mismatch, expected: JsonSerializer[_], actual: Class[Enum[_ <: Enum[_]]
JsonSeria lizer樣子:
public class LowerEnumSerializer extends StdScalarSerializer<Enum>
如果你不關心具體參數,你爲什麼不只是說'classOf [枚舉[_]]'這是模擬java的'Enum >'? – 2013-05-01 16:26:47