大家好,
当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不允许使用?