小编kit*_*yst的帖子

在Leiningen项目中保持最新的依赖版本

有没有一种简单的方法可以找出使用Leiningen可用的依赖项版本?

例如,如果我有一个依赖于Hiccup和Compojure的网络应用程序,我怎么能确定我在每个的最新版本而不去每个的github页面?

注意:我使用Ant和Ivy来构建我的Java项目,因此我对Maven的知识有限 - 所以请说明(或提供精细链接供我阅读)Leiningen向我公开的任何Maven概念,这对我有帮助(I知道在引擎盖下,Leiningen使用Maven进行依赖性解析.助教.

clojure leiningen

20
推荐指数
3
解决办法
5358
查看次数

Scala中有多少含义?

如果我没有导入除Scala通常默认值之外的任何内容,那么范围内有多少含义(隐式转换)?

是否有完整的列表,最好按照他们可以采取行动的类型进行组织?

scala implicit type-conversion implicit-conversion

16
推荐指数
3
解决办法
2034
查看次数

从Clojure调用可变参数Java函数的问题

我正在玩JDK 7的Java NIO.2 API.

特别是,我想调用方法: Paths#get(String first, String... more)

这是一个静态方法,它至少接收一个字符串,并返回与之对应的Path对象.有一个重载的形式:Paths#get(URI uri)

但是,我似乎无法从Clojure调用top方法.我最近能得到的是:

(Paths/get ^String dir-fq (object-array 0))
Run Code Online (Sandbox Code Playgroud)

失败的是:

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
Run Code Online (Sandbox Code Playgroud)

正如你所料.毕竟,我们将Object []传递给期望String []的东西.

我已经尝试删除(对象数组)表单 - 但这只会导致Clojure尝试调用get(URI)方法 - 无论是否有类型提示.

将nil作为Paths#get(String,String ...)的第二个参数传递会导致调用正确的方法,但Java 7随后会因NPE而失败.

我似乎无法在Clojure中找到表达String []类型的方法 - 我猜我需要这样做或者为调度系统提供一个提示.

有任何想法吗?

java clojure java-7

6
推荐指数
1
解决办法
1737
查看次数

为什么在已编译的Scala类上运行javap会在常量池中显示奇怪的条目?

在scala(版本2.8.1 final)的编译类上运行javap -v时:

class Point(x:Int,y:Int)

我得到了常量池条目的以下输出,以及指示不可打印字符的几个终端蜂鸣声?

#19 = Utf8               Lscala/reflect/ScalaSignature;
#20 = Utf8               bytes
#21 = Utf8               \t2\"\t!!>Lg9A(Z7qift4A\nqCA\r!BA
                                                        aM\4
                                                            -\tAA[1wC&Q\nTWm;=R\"\t
                                                                                     E\tQa]2bYL!a\tMr\1PE*,7\r\t+\t)A-\t/%:$

eDu\taP5oSRtDc!CAqA!)Qca-!)!da-
#22 = Utf8               RuntimeVisibleAnnotations
#23 = Utf8               Point
#24 = Class              #23            //  Point
Run Code Online (Sandbox Code Playgroud)

知道发生了什么,为什么?我之前从未见过CONSTANT_Utf8条目中的二进制垃圾.

我在Mac 10.6上使用OpenJDK 7版本,如果这有所不同 - 我会尝试在明天复制我有其他操作系统时,并会相应更新.

openjdk jvm scala

5
推荐指数
1
解决办法
299
查看次数

为什么Scala实现为闭包?

博客圈最近发生的事件表明,Scala可能出现的性能问题是它使用了闭包来实现.

这个设计决策的原因是什么,而不是C或Java风格的"原语" - 这将是一个简单的循环?

(我在这里区分了Java的for和它的"foreach"构造,因为后者涉及一个隐式迭代器).

更多细节,跟随彼得.这一点Scala:

  object ScratchFor {
    def main(args : Array[String]) : Unit = {
      for (val s <- args) {
        println(s)
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

创建3个类:ScratchFor $$ anonfun $ main $ 1.class ScratchFor $ .class ScratchFor.class

ScratchFor :: main只转发到伴侣对象ScratchFor $ .MODULE $ :: main,它会旋转一个ScratchFor $$ anonfun $ main $ 1(这是AbstractFunction1的一个实现).

它位于AbstractFunction1的匿名内部impl的apply()方法中,实际代码存在,这实际上是循环体.

我没有看到HotSpot能够将其重写为一个简单的循环.尽管如此,很高兴被证明是错误的.

java scala

5
推荐指数
1
解决办法
1017
查看次数

如何在Rust中运行任何测试之前运行设置代码?

我有一个Rust应用程序(一个简单的解释器),在环境可用之前,需要进行一些设置(初始化存储库)。

我知道Rust是以多线程方式运行其测试(通过货物测试)的,所以我需要在运行任何测试之前初始化存储库。我还需要每次运行只执行一次,而不是每次测试之前。

在Java的JUnit中,这可以通过@BeforeClass(或JUnit 5中的@BeforeAll)方法完成。我如何在Rust中达到同一目的?

unit-testing rust

3
推荐指数
3
解决办法
111
查看次数

在哪里放置maven构建库的演示/示例代码?

我使用maven开发了一个小的java实用程序库.现在我想添加一些演示/示例代码来展示如何使用该库.

放在哪里最好的地方?

  • 在包含其他代码的子包中.我不喜欢这个,因为它意味着演示将包含在库jar文件中.

  • 在一个新的maven神器.这是有效的,但我希望让演示更紧密地连接到库源.

  • 作为子工件.还没试过这个.似乎使一切都变得复杂,应该是简单的事情.

这有什么共同的模式吗?

java maven

2
推荐指数
1
解决办法
341
查看次数

演员案例类简单示例

我几乎肯定做了一些非常愚蠢的事情,这使得这个演员不能正常工作,但是经过一段时间的盯着它后我看不到它.所以我想我会问.

我无法使用此代码 - 因为,如果我发送消息如4(应该触发默认情况),则不打印任何内容,并且我不能通过发送温度警报来绊倒显示器.

我究竟做错了什么?

class TemperatureMonitor extends Actor {
  var tripped : Boolean = false
  var tripTemp : Double = 0.0

  def act() {
    while (true) {
      receive {
        case Heartbeat => 0
        case TemperatureAlarm(temp) =>
          tripped = true
          tripTemp = temp
        case _ => println("No match")
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

scala actor

1
推荐指数
1
解决办法
280
查看次数