加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

通过Scala类作为参数?

发布时间:2020-12-16 09:01:32 所属栏目:安全 来源:网络整理
导读:我正在将Class作为参数传递给 Scala函数,如下所示: def sampleFunc (c : Class) : List[Any] (Side问题:参数中的类型是Class还是Class [_]?) 我传递类类型的原因是检查对象是否属于特定类型.目前,作为解决方法,我将一个示例对象传递给该方法,并比较两个对
我正在将Class作为参数传递给 Scala函数,如下所示:

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

(Side问题:参数中的类型是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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读