我正在使用Java的Akka.根据文件,context.become()需要Procedure<Object>作为一个参数.事实上,它预计PartialFunction<Object, BoxedUnit>这似乎是一些自动生成的东西,其中包含许多带有奇怪名称的方法.
从Java 使用java ()的正确方法是什么?
PS我正在使用Akka 2.0.3
更新:看起来有两种方法:context()和getContext().第一个返回ActorContext,第二个返回UntypedActorContext.UntypedActorContext有become(Procedure<Object>).
我定义了一个函数,它接受两个参数 - map和key.密钥是从map参数分解引用的
(defn myfunc [{v k} k]
v)
Run Code Online (Sandbox Code Playgroud)
我打电话的时候:
(myfunc {:a 10} :a)
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是它产生了预期的结果:10
类似的东西:
(let [{v k} {:a 10} k :a] v)
Run Code Online (Sandbox Code Playgroud)
失败,因为此时没有定义k,当评估第一部分时.
我的问题是:为什么与let表达式中的分解相比,函数参数内部的分解行为有所不同?
是否可以定义包含多个参数的compojure路径?
即:
(def my-routes
(routes
(GET "/something/:param1/:param2" [] my-handler)))
Run Code Online (Sandbox Code Playgroud) 我有以下代码.它给我一个java.lang.IllegalMonitorStateException.为什么这样,我该如何解决这个问题?
public class Threads {
/**
* @param args
*/
public static void main(String[] args) {
//Thread Th = new Threads();
Thread th = new Thread (new thread1 ());
th.start();
Thread th1 = new Thread (new thread1 ());
th1.start();
}
}
class thread1 implements Runnable{
String name = "vimal";
static int id = 0;
public void run() {
System.out.println("Runnable "+this.name);
//setNAme("Manish");
synchronized(name){
System.out.println(this.name);
this.name = "Manish "+this.id;
this.id++;
try {
wait(1000);System.out.println("Thread "+Thread.currentThread().getName());
} catch (InterruptedException e) {
// TODO Auto-generated …Run Code Online (Sandbox Code Playgroud)