我需要一个可变线程安全Map和Scala中的一个可变线程安全List.我知道默认情况下不可变集合是线程安全的.但是,我需要经常更新我的集合,因为我不能使用不可变的.此外,我需要我的线程安全可变Map来维护插入顺序.
现在我正在使用下面的地图
val map = scala.collection.mutable.LinkedHashMap[String,Any]()
Run Code Online (Sandbox Code Playgroud)
此映射维护插入顺序并且是可变的.如何使其线程安全?
我是clojure的初学者,昨天才开始.
我已经收集到了一个创建独立应用程序的简单方法是使用leiningen lein new foo.
我试图用leiningen创建一个hello world测试项目.我添加了:main和:aot指令到project.clj,添加:gen-class到core.clj文件并尝试过lein run,但是我发现没有找到类定义的错误.
Exception in thread "main" java.lang.NoClassDefFoundError:
Caused by: java.lang.ClassNotFoundException:
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Run Code Online (Sandbox Code Playgroud)
core.clj文件
(ns test.core
(:gen-class))
(defn -main [& args] (println "Hello main"))
Run Code Online (Sandbox Code Playgroud)
和project.clj文件
(defproject test "1.0.0-SNAPSHOT"
:description "FIXME: write description"
:main test.core
:aot [test.core]
:dependencies [[org.clojure/clojure "1.2.1"]])
Run Code Online (Sandbox Code Playgroud)
编辑:经过进一步测试,似乎将项目复制到我的桌面工作原样,我认为我的笔记本电脑上的环境有点笨拙,但我不知道如何.
桌面环境是来自存储库和来自AUR的leiningen的clojure.在笔记本电脑上,clojure来自clojure.org,leining来自github.
我想使用某种模糊搜索打开一个文件,我很确定我在Sublime Text中看到了这个功能,但由于某种原因我无法在任何地方找到任何提及.
我想打开命令托盘并能够在那里输入文件名,如果文件关闭,它将为我打开文件,如果它打开,它将激活它的窗口和组.
这可能吗?
昨天从类型安全下载play-2.0,尽可能按照说明操作,但是当我使用sbt构建时,我得到了未解决的依赖错误:
[warn] :: org.slf4j #slf4j-api; 1.6.1:在org.slf4j中找不到配置#slf4j-api; 1.6.1:'compile'.它来自org.hibernate#hibernate-validator; 4.2.0.Final compile [warn] :: commons-codec#commons-codec; 1.4:在commons-codec#commons-codec中找不到配置; 1.4:'compile' .它是从org.apache.httpcomponents#HttpClient的需要; 4.1.2编译[警告] ::::::::::::::::::::::::::::::: ::::::::::::::: [error] {file:/ Users/george/work/play/gbraw /} gbraw/*:update:sbt.ResolveException:unresolved dependency:org.slf4j# slf4j-api; 1.6.1:在org.slf4j中找不到配置#slf4j-api; 1.6.1:'compile'.它来自org.hibernate #hibernate-validator; 4.2.0.Final compile [error] unresolved dependency:commons-codec#commons-codec; 1.4:在commons-codec中找不到配置#commonc-codec; 1.4:'compile ".它来自org.apache.httpcomponents#httpclient; 4.1.2编译
我删除了我的.sbt目录(来自早期的sbt安装),但没有快乐.我确信我有一些我不应该有的东西,但我很欣赏任何关于在哪里寻找的指导......
谢谢
这只是一个普遍的问题.我没有实际的项目或其他我想做的事情.是否可以在Java中构建应用程序并添加一些框架内容或其他内容并使用Notication Center?
我有一个参数化类型的类,我想做比较运算符.我认为我需要使用Ordered trait来实现这一点,但编译器不喜欢我使用它.所以说我有以下课程:
class Test[T <: Ordered[T]] {
def someOp(t: T) if(t < 3) ...
...
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试使用此类如下:
val test = new Test[Int]()
Run Code Online (Sandbox Code Playgroud)
编译器抱怨如下:
类型参数[Test [Int]]不符合类Test的类型参数bounds [T <:Ordered [T]]
有人可以向我解释我在这里做错了什么吗?
这是一个简单的TCP服务器.程序终止后如何关闭套接字?我使用try/finally并尝试关闭套接字.但是当我退出程序时它不会运行finally块.
任何人都可以知道如何以正确的方式关闭插座?
try {
socket = new ServerSocket(port);
System.out.println("Server is starting on port " + port + " ...");
}catch (IOException e){
System.out.println("Error on socket creation!");
}
Socket connectionSocket = null;
try{
while(true){
try{
connectionSocket = socket.accept();
Thread t = new Thread(new ClientConnection(connectionSocket));
t.start();
}catch (IOException e) {
System.out.println("Error on accept socket!");
}
}
}finally{
this.socket.close();
System.out.println("The server is shut down!");
}
Run Code Online (Sandbox Code Playgroud) 在python REPL中我可以做以下事情:
>>> [1,2,3,4]
[1, 2, 3, 4]
>>> sum(_)
10
Run Code Online (Sandbox Code Playgroud)
在clojure REPL中,我可以这样做:
user=> "Hello!"
"Hello!"
user=> *1
"Hello!"
Run Code Online (Sandbox Code Playgroud)
Scala REPL中有类似的东西吗?
我正在学习Clojure并且来自Ruby背景.
我正在寻找类似的东西gem install <library>.各种各样的咒语lein install似乎都不适合这个法案.
有没有办法简单地在本地安装库,以便可以在REPL中引用它而无需创建项目?
我有基本授权的maven存储库的nginx.
我的build.sbt有:
credentials += Credentials("maven repository", "rep.com", "sbt", "password")
resolvers ++= Seq(
"maven repository" at "http://rep.com:8080/"
)
Run Code Online (Sandbox Code Playgroud)
但是,sbt找不到模块,因为sbt不使用基本授权.
我的nginx日志看起来像:
012/07/22 20:02:21 [error] 3338#0: *14 no user/password was provided for basic authentication, client: 8.32.39.29, server: rep.com, request: "HEAD /some/cool_2.9.1/0.1-SNAPSHOT/cool_2.9.1-0.1-SNAPSHOT.pom HTTP/1.1", host: "rep.com:8080"
Run Code Online (Sandbox Code Playgroud)
我不想通过nginx发布工件.基本身份验证只需要限制访问工件.
如何在sbt中限制访问和使用存储库?