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

Scala有很好的反思库吗?

发布时间:2020-12-16 09:18:16 所属栏目:安全 来源:网络整理
导读:我正在开发需要反思的库,并且需要 Scala特定的信息,而不是通过标准的 Java反射API提供的信息.现在我在scalap(Scala等同于javap)中使用未记录的代码,并尝试将其提供的数据与Java反射对象相关联,以便我可以调用方法等(scalap只是解析类文件). 我发现这一点,但
我正在开发需要反思的库,并且需要 Scala特定的信息,而不是通过标准的 Java反射API提供的信息.现在我在scalap(Scala等同于javap)中使用未记录的代码,并尝试将其提供的数据与Java反射对象相关联,以便我可以调用方法等(scalap只是解析类文件).

我发现这一点,但没有什么
https://github.com/dubochet/scala-reflection

…我搜索了Scala SVN repo的痕迹,没有找到它在那里(但可能我只是错过了).

有没有人知道Scala反射库提供类似于什么scalap提供的信息,但也允许您调用方法,访问字段等像Java反射库?

[编辑]

我想应该更清楚地说明我正在做什么?

我想编写一个文件库,一个Excel文件中的分隔文本文件或工作表,顶部的标题和一个清单,并返回一个对象的Seq.所以基本上一个这样的功能:

def parseFile[T](fileName: String)(implicit manifest: Manifest[T]): Seq[T] = {
  // lots of magic ...
}

在一般情况下,这可能是不可能的,我相信有很多“可能”的情况是非常困难的,但我认为有一个有用的子集可以实现没有太多的复杂性,一旦我得到(或scala.reflect,两个相似但不同…),并将其结合到Java反射API中的正确对象.我的基本计划是查看文件的头文件,查看公共构造函数的参数名称和类型,并在协同对象上应用方法,选择与文件最匹配的方法,并将文件解析为对象.这是为了比应用程序构建更贴近脚本.所以我大部分只是想建立一些可以节省时间的东西.

所以我写的图书馆既没有对它所创建的类的先验知识,也没有任何超出其使用的文件的基本结构(分隔的表格文本,Excel等).优选应该是微创的.

我以前在Python中做过类似的工作,但是它是有侵入性的,因为我不得不使用指定所需类型的描述符,或者我需要使描述符都接受字符串,并将转换转换为适当的类型.我想到Scala的丰富的类型信息,我可以较少侵入.

解决方法

可以在运行时反映创建清单.

输入TypeWrangler here on gitub …

只需删除该类的最后两个方法(特定于Spring),你很好去!

这些日子之一,我会将该代码整合成一个完整的反映库,同时也使用了Scalap中的一些签名逻辑.似乎这样的需求存在.

(编辑:李大同)

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

    推荐文章
      热点阅读