3
我在我的Clojure得到这个怪异的NPE的Hello WorldClojure的NPE在主
(ns test-app.core
(:gen-class))
(defn -main [& args]
((println "Hello")))
注意额外的()周围(的println “你好”)。这似乎是问题,如果我删除它就好了。
和程序的输出。注意代码实际上打印了“Hello”和投掷。
Hello
Exception in thread "main" java.lang.NullPointerException
at test_app.core$_main.doInvoke(core.clj:5)
at clojure.lang.RestFn.invoke(RestFn.java:397)
at clojure.lang.Var.invoke(Var.java:411)
at user$eval5$fn__7.invoke(form-init9064825970813284041.clj:1)
at user$eval5.invoke(form-init9064825970813284041.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:6619)
at clojure.lang.Compiler.eval(Compiler.java:6609)
at clojure.lang.Compiler.load(Compiler.java:7064)
at clojure.lang.Compiler.loadFile(Compiler.java:7020)
at clojure.main$load_script.invoke(main.clj:294)
at clojure.main$init_opt.invoke(main.clj:299)
at clojure.main$initialize.invoke(main.clj:327)
at clojure.main$null_opt.invoke(main.clj:362)
at clojure.main$main.doInvoke(main.clj:440)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at clojure.lang.Var.invoke(Var.java:419)
at clojure.lang.AFn.applyToHelper(AFn.java:163)
at clojure.lang.Var.applyTo(Var.java:532)
at clojure.main.main(main.java:37)
[Finished in 4.0s with exit code 1]
我的问题是为什么会发生这种情况?
或更好:那么这是一个错误还是预期的行为?
我认为这是因为列表的第一个参数应该是一个函数的名称,在这里是另一个列表:P。但是在这种情况下编译器/运行时不应该给出更好的错误?
Thx提前。
有意义:P thx用于快速回复。 – boogie666