大家好,
Java 公开类 A 有公开属性 int a;当 (def a(A.)) 并且然后 (.a a) 时,错误信息 A (错误名称:a) 会显示。
为什么会有这个问题呢?
[编辑]
// 惠蠢的例子,用于演示从 Clojure 访问 A 的方式
public class A {
public int af() { return 2; }
public int af1(int x) { return x+2; }
public int a = 1;
static public int as;
static public int afs() { return 20; }
static public int afs1(int x) { return x+20; }
}
$ javac A.java
$ clojure -cp "."
user => (import A)
user => (def a (A.))
user => (def x (A.))
user => (def a1 (A.))
user => (.a a1)
1
user => (.a x)
1
user => (.a a)
执行错误 (NoClassDefFoundError) 在 java.lang.ClassLoader/defineClass1 (ClassLoader.java:-2)。
A (错误名称:a)
;; 为什么 a 不被允许?