gpt4 book ai didi

scala - 将 Scala 类作为参数传递?

转载 作者:行者123 更新时间:2023-12-02 02:19:10 25 4
gpt4 key购买 nike

我希望将一个类作为参数传递给 Scala 函数,如下所示:

def sampleFunc (c : Class) : List[Any]  

(附带问题:参数中的类型应该是 Class 还是 Class[_]?)

我传递 Class 类型的原因是检查对象是否属于特定类型。目前,作为解决方法,我将示例对象传递给该方法并比较两个对象的 .getClass 结果。但我认为这并不理想,而且我确信 Scala 中有一种明确定义的传递类型的方式。

最佳答案

好吧,对于你原来的问题:是的,你可以将 Scala 类作为参数传递。由于 Class 是类型构造函数,因此它需要一个具体类型来创建要在参数中使用的类型。您可以像您所做的那样使用通配符存在类型 Class[_]

def sample(c: Class[_]) = println("Get a class")
sample(classOf[Int])

但是,如果你想检查一个对象是否属于某种类型,我建议你使用=:=,结合默认参数

def checkType[T](obj: T)(implict ev: T =:= Int = null) =
if (ev == null) "get other"
else "get int"
checkType(123) // get int
checkType("123") // get other

关于scala - 将 Scala 类作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28112891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com