簡體   English   中英

如何在scala中獲取java.lang.Enum類?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM