我对 lisp 很陌生,对 java 也很陌生。我正在用 Java 开发一个简单的游戏,我认为与游戏交互会很有趣,因为我正在通过 REPL 对其进行编码。我一直在关注 Practical Common Lisp,并且对基本的函数结构有所了解。我开始使用 armed bear common lisp——一个在 java 虚拟机上运行的实现——并且能够编写一些用于创建 guis 的基本函数,例如:
(defconstant +jframe+ "javax.swing.JFrame")
(defun make-frame (length width &key visible)
"Create a +jframe+"
(let ((frame (jnew (jconstructor +jframe+))))
(jcall (jmethod +jframe+ "setSize" "int" "int")
frame length width)
(if visible (frame-is-visible t frame))
frame))
但是我不知道如何从 lisp 访问用户定义的类。整个实现似乎记录得很差,我发现很难从 lisp 中开始使用 java 特定的东西。例如,我有一个名为“Character”的编译字符类。但是当我调用 (jclass "Character") 时,我得到一个 "class not found" 错误。是否可以让 abcl 从 lisp 中了解我的课程?