【发布时间】:2017-08-01 02:54:18
【问题描述】:
我试图创建类似于 FilterList 的东西,而 Enumeration 称为 FilterType。
FilterList 应该有一个(filterValue, ClassOfValue, FilterType) 元组的列表,例如
val listOfFilters: List[(String, ???, FilterType)] = List(
("fromDate", String, DateFilter),
("toDate", String, DateFilter),
("id", Long, IdFilter)
)
这样做的主要原因是读取该过滤器并将该过滤器写入 JSON,如下所示:
(__ \ filterName).read[ClassOfValue]
问题是我还没有找到替换 ??? 的方法,我什至不知道在 Scala 中是否可行。
编辑:
Intellij IDEA 建议我将其指定为 Object,但感觉不应该有 Class 参考:
val listOfFilters: List[(String, Object, FilterType)] = List(
("fromDate", String, DateFilter),
("toDate", String, DateFilter),
("id", Long, IdFilter)
)
【问题讨论】:
-
Any怎么样。 -
Any是一个可以接受的替代品,因为它应该可以编译,但是类中没有任何说明符吗?使用Any,您可以添加例如"a string"之类的字符串值,在这种情况下,JSON 调用将不起作用 -
当你想做
(__ \ filterName).read[ClassOfValue]时,为ClassOfValue创建另一个枚举然后在该枚举上进行模式匹配不是有意义吗? -
@evan058 这确实是个好主意。主要要求是只允许非常通用的类,例如
String、Long、Double和Boolean。
标签: scala