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

Scala有没有内省能力与Python的dir()类似?

发布时间:2020-12-16 09:33:12 所属栏目:安全 来源:网络整理
导读:是的,我知道非Pythonistas被认为是懒惰的。我问的原因是文档在许多Scala库中仍然是非常缺乏的(例如Scala-dbc,但这并不是我所看到的),如果我可以在运行时看到对象/类的属性,我可以最少弄清楚可用的。谢谢。 解决方法 Scala没有反射API。访问此信息的唯一
是的,我知道非Pythonistas被认为是懒惰的。我问的原因是文档在许多Scala库中仍然是非常缺乏的(例如Scala-dbc,但这并不是我所看到的),如果我可以在运行时看到对象/类的属性,我可以最少弄清楚可用的。谢谢。

解决方法

Scala没有反射API。访问此信息的唯一方法是使用 Java reflection API.这样做的缺点是,结构可能会随着Java类中的Scala方式的改变而改变,接口在将来可能会发生变化。

scala> classOf[AnyRef].getMethods
res0: Array[java.lang.reflect.Method] = Array(public final void ...

可以使用ScalaSigParser访问字节码中存在的一些特定类型的信息。

import tools.scalap.scalax.rules.scalasig._
import scala.runtime._

val scalaSig = ScalaSigParser.parse(classOf[RichDouble])

(编辑:李大同)

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

    推荐文章
      热点阅读