1. package com.jason
  2.  
  3. case class JJ(d: Double*)
  4.  
  5. object Ss {
  6. def main(args: Array[String]): Unit = {
  7. import scala.reflect.runtime.universe._
  8. import scala.tools.reflect.ToolBox
  9.  
  10. val code = """(x: String) => x.replace("$", "")"""
  11. val toolbox = runtimeMirror(Ss.getClass.getClassLoader).mkToolBox()
  12. val func = toolbox.eval(toolbox.parse(code)).asInstanceOf[String => String]
  13. println(func("$10.50")) // prints "10.50"
  14.  
  15. val n = 10
  16. val code2 = s"println($n)"
  17. toolbox.eval(toolbox.parse(code2))
  18.  
  19. val list = "List(1,2,3)"
  20. val ll = toolbox.eval(toolbox.parse(list)).asInstanceOf[List[Int]]
  21. println(ll)
  22.  
  23. val mm = "new com.jason.MM()" //一定要写package.classname 否则会报错not found: type MM
  24. val mc = toolbox.eval(toolbox.parse(mm)).asInstanceOf[MM]
  25. println(mc.x)
  26. }
  27. }

需要有如下依赖

  1. <dependency>
  2. <groupId>org.scala-lang</groupId>
  3. <artifactId>scala-compiler</artifactId>
  4. <version>2.11.</version>
  5. </dependency>

scala eval的更多相关文章

  1. Scala Macros - 元编程 Metaprogramming with Def Macros

    Scala Macros对scala函数库编程人员来说是一项不可或缺的编程工具,可以通过它来解决一些用普通编程或者类层次编程(type level programming)都无法解决的问题,这是因为S ...

  2. 解读 《2014 最流行编程语言》 by Code Eval

    此文已转至http://cn.abnerchou.me/2014/02/23/fa87ae80/ 原文:点我 原文翻译:点我 首先了解下CodeEval是做什么的: A tool for auto e ...

  3. 快学Scala习题解答—第一章 基础

    1 简介 近期对Scala比较感兴趣,买了本<快学Scala>,感觉不错.比<Programming Scala:Tackle Multi-Core Complexity on th ...

  4. Embedding Lua, in Scala, using Java(转)

    LuaJ I was reading over the list of features that CurioDB lacks compared to Redis , that I’d previou ...

  5. 快学scala

    scala 1.   scala的由来 scala是一门多范式的编程语言,一种类似java的编程语言[2] ,设计初衷是要集成面向对象编程和函数式编程的各种特性. java和c++的进化速度已经大不如 ...

  6. SDP(13): Scala.Future - far from completion,绝不能用来做甩手掌柜

    在前面几篇关于数据库引擎的讨论里很多的运算函数都返回了scala.Future类型的结果,因为我以为这样就可以很方便的实现了non-blocking效果.无论任何复杂的数据处理操作,只要把它们包在一个 ...

  7. 给Java开发者的Scala教程

    author:Michel Schinz,Philipp Haller 1. 简介 本文将该要的介绍Scala语言和其编译.这里假设读者已经有一定的java开发经验,需要概要的了解他们可以用Scala ...

  8. 理解Scala - 核心规则

    看到这里有几个有意思的 规则,转载于此: Read Eval Print Loop (REPL) REPL在Scala里面指的是直接运行scala.exe进入的交互式命令行模式.广义上讲,也泛指那些在 ...

  9. Scala学习——Brief Scala Tutorial

    因为Spark项目需要,学习Scala编程. 从官网文档入手:http://www.scala-lang.org/documentation/ 首先从他的Older Documentation入手. ...

随机推荐

  1. C# 文件监听类 FileSystemWatcher 属性

    属性: Path——这个属性告诉FileSystemWatcher它需要监控哪条路径.例如,如果我们将这个属性设为“C:Temp”,对象就监控那个目录发生的所有改变.IncludeSubDirecto ...

  2. Go语言(golang)新发布的1.13中的Error Wrapping深度分析

    Go 1.13发布的功能还有一个值得深入研究的,就是对Error的增强,也是今天我们要分析的 Error Wrapping. 背景 做Go语言开发的,肯定经常用error,但是我们也知道error非常 ...

  3. php7.3升级后CI框架session失效session不能读取的问题

    php7.3升级后CI框架session失效session不能读取的问题 框架ci3.0.2,php服务器从5升级到7.x后发现session失效了ci无法设置session的问题根本原因在,libr ...

  4. zookeeper中的QuorumPeerMain解析

    https://www.cnblogs.com/7758521gorden/p/8006983.html zookeeper中的QuorumPeerMain解析   在一个初级的hadoop与zook ...

  5. 使用vnc远程操控Centos7.6

    安装vncserver [root@elegant-snap-3 ~]# yum install tigervnc-server -y Loaded plugins: fastestmirror De ...

  6. 《linux就该这么学》课堂笔记14 Apache、SELinux、虚拟主机

    1.目前能够提供Web网络服务的程序有IIS(Windows系统中默认的Web服务程序,是一款图形化的网站管理工具).Nginx和Apache(RHEL 7系统中默认的Web服务程序)等. Apach ...

  7. Linux——清除服务器的日志文件

    前言 无论多大的磁盘都遭不住日志文件的糟蹋啊,所以还是需要定时的清除一下. 命令 查找所有.log结尾的文件删除 find / -name "*.log" -exec rm -rv ...

  8. JSOI 2015 送礼物

    [BZOJ4476] [JSOI2015]送礼物 Description JYY和CX的结婚纪念日即将到来,JYY来到萌萌开的礼品店选购纪念礼物. 萌萌的礼品店很神奇,所有出售的礼物都按照特定的顺序都 ...

  9. USACO Protecting the Flowers

    洛谷 P2878 [USACO07JAN]保护花朵Protecting the Flowers 洛谷传送门 JDOJ 1009: 护花 JDOJ传送门 Description FJ出去砍木材去了,把N ...

  10. history.back(-1)和history.go(-1)的区别 (有错误)

    返回一个页面方法有很多,就好比给返回按钮绑定一个URL,但是如果一个页面可以从很多页面到达,那么这个页面返回的页面就不是固定的,那么绑定固定的URL显然不妥. 两个方法的区别 既然history.ba ...