scala eval
2024-09-01 05:07:19
package com.jason case class JJ(d: Double*) object Ss {
def main(args: Array[String]): Unit = {
import scala.reflect.runtime.universe._
import scala.tools.reflect.ToolBox val code = """(x: String) => x.replace("$", "")"""
val toolbox = runtimeMirror(Ss.getClass.getClassLoader).mkToolBox()
val func = toolbox.eval(toolbox.parse(code)).asInstanceOf[String => String]
println(func("$10.50")) // prints "10.50" val n = 10
val code2 = s"println($n)"
toolbox.eval(toolbox.parse(code2)) val list = "List(1,2,3)"
val ll = toolbox.eval(toolbox.parse(list)).asInstanceOf[List[Int]]
println(ll) val mm = "new com.jason.MM()" //一定要写package.classname 否则会报错not found: type MM
val mc = toolbox.eval(toolbox.parse(mm)).asInstanceOf[MM]
println(mc.x)
}
}
需要有如下依赖
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-compiler</artifactId>
<version>2.11.</version>
</dependency>
最新文章
- [LeetCode] Shortest Distance from All Buildings 建筑物的最短距离
- 【解决方法】magento paypal快速结账 不跳转
- 将图片压缩后转Base64函数
- 如何用分析函数找出EMP表中每个部门工资最高的员工
- 【bzoj2115】 Xor
- PHP、C++的重载
- 精通CSS高级Web标准解决方案(1-2 层叠与特殊性)
- [原]Unity3D深入浅出 - GUI控件
- sublime text3设置文件类型(CR/LF)
- JAVA客户端API调用memcached两种方式
- QNDTU外壳及开发板
- sqlserver2012评估期已过问题处理
- ActiveMQ安装配置及实例
- python3打印当前时间和获取程序运行时间
- Linux 的终端及设置
- python爬取猫眼电影top100
- mysql服务器没有响应
- Zedboard初体验
- SpringBoot集成TkMybatis插件 (二)
- 将js和css文件装入localStorage加速程序执行