[英]How do I get the class of java.lang.Enum in scala?
我是Scala的新手,我正在將一些Java代碼轉換為使用Jackson庫來處理JSON序列化的Scala。 我在Jackson SimpleModule實現中遇到了問題。
在Java中,我會這樣做:
addSerializer(Enum.class, new LowerEnumSerializer());
我認為這就像在Scala中這樣做一樣容易:
addSerializer(classOf[Enum], new LowerEnumSerializer())
但是,我的編譯器抱怨:
scala:class Enum接受類型參數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[T] forSome { type T <: Enum[T] }]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.