0

私はLispに非常に慣れておらず、Javaにもかなり慣れていません。私は Java で簡単なゲームに取り組んでいましたが、REPL を使用してコーディングしていたので、ゲームとやり取りするのは面白いだろうと思いました。私は Practical Common Lisp に従っており、基本的な関数構造の知識を持っています。私は Armed Bear Common Lisp (Java 仮想マシン上で実行される実装) の使用を開始し、次のような GUI を作成するためのいくつかの基本的な関数をコーディングすることができました。

(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") を呼び出すと、「クラスが見つかりません」というエラーが発生します。Lisp内からabclに私のクラスを認識させることは可能ですか?

4

1 に答える 1

2

自分で作成し、jarファイルにパッケージ化されたJavaクラスのインスタンスを作成する場合は、add-to-classpathを使用します。

(add-to-classpath '("Character.jar"))

次に、クラス(jnew "org.example.Character")のインスタンスを提供する必要があります(名前空間Characterにあると仮定します)。org.example

于 2012-07-16T13:59:43.653 に答える