草庐IT

clojure-auto

全部标签

java - 在java程序中嵌入swank-clojure

基于http://github.com/technomancy/swank-clojure的嵌入部分,我正在使用以下内容对其进行测试。有没有更好的办法这个不使用编译器?有没有办法以编程方式停止自负?似乎start-repl控制了线程。什么将是为它产生另一个线程并能够以编程方式杀死该线程。importclojure.lang.Compiler;importjava.io.StringReader;publicclassEmbed{publicstaticvoidmain(String[]args)throwsException{finalStringstartSwankScript="(

java - 在 clojure 中同时支持 xml 和 json REST 响应

假设我在Java中有一个RESTAPI,它支持JSON或XML的响应。响应包含相同的数据,但形式不同。例如,在json中我可能有:{"persons":[{"name":"Bob","age":24,"hometown":"NewYork"}]}而在XML中它看起来像这样:NewYork也就是说有的值是person上的属性,有的是子元素。在Java中,使用JAXB和Jackson,可以很容易地通过模型对象上的注释来隐藏这种差异,例如:publicclassPerson{@XmlAttributeStringname;@XmlAttributeIntegerage;@XmlElement

java - 从 Clojure 中的字符串解析命令行参数

我处于这样一种情况,我需要以与在命令行上提供给Java/Clojure应用程序时相同的方式解析字符串中的参数。例如,我需要将"foo\"barbaz\"'fooybarish'foo"变成("foo""barbaz""fooybarish""foo")。我很好奇是否有一种方法可以使用Java或Clojure用来执行此操作的解析器。我不反对使用正则表达式,但我不喜欢正则表达式,如果我尝试为此编写一个正则表达式,我会失败的。有什么想法吗? 最佳答案 更新了一个更复杂的新版本。这在官方上是荒谬的;下一次迭代将使用适当的解析器(或c.c.m

java - 在 Clojure/Java 中检测 Unicode 文本连字

连字是由多个代码点表示的Unicode字符。例如,在梵文中त्र是一个由代码点त+्+र组成的连字。当在记事本等简单的文本文件编辑器中查看时,त्र显示为त्+र并存储为三个Unicode字符。但是,当在Firefox中打开同一文件时,它显示为正确的连字。所以我的问题是,如何在从我的代码中读取文件时以编程方式检测此类连字。既然Firefox做到了,那么肯定存在一种以编程方式完成它的方法。是否有包含此信息的任何Unicode属性,或者我是否需要映射到所有此类连字?SVGCSS属性text-rendering当设置为optimizeLegibility时,会做同样的事情(将代码点组合成正确

java - Clojure REPL 未在 Windows 命令提示符下启动

我已将clojure-1.4.0.jar路径(C:\clojure-1.4.0\clojure-1.4.0.jar)放入我的CLASSPATH环境变量中。现在,当我尝试使用以下代码从命令行启动REPL时:java-cpclojure-1.4.0.jarclojure.main我得到一个错误:Error:Couldnotfindorloadmainclassclojure.main它曾经在我设置emacs之前工作。任何想法。 最佳答案 您可以将clojurejar文件添加到CLASSPATH环境变量:/some/where%CLASS

java - 从 Clojure 调用 Java

当我尝试在Clojure中运行以下代码(来自REPL)时:(dotimes[i5](.start(Thread.(fn[](Thread/sleep(rand1000))(println(format"Finished%don%s"i(Thread/currentThread)))))))我收到以下错误:java.lang.Exception:Unabletoresolvesymbol:iinthiscontextclojure.lang.Compiler$CompilerException:NO_SOURCE_FILE:6:Unabletoresolvesymbol:iinthisc

java - Hibernate 中 FlushMode.AUTO 和 FlushMode.ALWAYS 的区别?

已经通过FlushMode的hibernateapi规范,但没有得到确切的区别。所以请帮忙。 最佳答案 如果在触发任何查询之前刷新模式为“AUTO”,则hibernate将检查是否有任何表要更新。如果是这样,将进行冲洗,否则不会。如果刷新模式是“ALWAYS”,即使没有要更新的表也会进行刷新。检查来源,org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(AutoFlushEvent) 关于java-Hiber

java - 一种从 Clojure 中的 java.io.File.listFiles 中剥离返回值的方法

我在Clojure中调用一个java函数来获取文件列表。(require'[clojure.java.io:asio])(str(.listFiles(io/file"/home/loluser/loldir")))我得到了一大堆像这样的字符串#等我如何摆脱括号并将它们放在某种形式的数组中以便另一个函数可以访问它? 最佳答案 这些字符串只是JavaFile对象的打印格式。参见Filejavadoc哪些操作可用。如果你想要文件路径作为字符串,它会是这样的(map#(.getPath%)(.listFiles(io/file"/home

java - 初始化 Java 对象的 Clojure 惯用方法

我正在尝试寻找一种Clojure惯用的方法来初始化Java对象。我有以下代码:(let[url-connection(let[url-conn(java.net.HttpURLConnection.)](dotourl-conn(.setDoInputtrue);moreinitializationonurl-conn)url-conn)];usetheurl-connection)但看起来非常别扭。创建HttpURLConnection对象并在稍后在代码中使用它之前对其进行初始化的更好方法是什么?更新:看来(doto...)在这里可以派上用场:(let[url-connection(

java - 为什么我不能使用扩展类型扩展 Clojure 的 IFn?

我看过DavidNolen关于ClojureScript的演讲,他在演讲中将IFn扩展到Regexp,这样我们就可以将正则表达式文字作为字符串上的函数来调用以检查匹配。我在常规Clojure中尝试了与字符串类似的操作,但我得到了这个异常。我看到IFn是一个用Java编写的接口(interface),但在CLojrue前端的实现是如何工作的。(extend-typejava.lang.String#_=>clojure.lang.IFn#_=>(-invoke#_=>([thisindex]#_=>(get(seqthis)index))))IllegalArgumentExceptio