関連: 実行時にクラスのバイトコードを取得する方法はありますか?
Clojure に耐久性を追加していて、ようやく関数を追加する準備が整いました。Clojure では、関数は (とりわけ) 呼び出しメソッドを持つクラスにバイト コンパイルされます。このように、関数はファースト クラスです。これらを永続的にするには、これらのクラスをシリアライズおよびデシリアライズする必要があります。.class ファイルにアクセスせずにクラスのバイトコードを取得するにはどうすればよいですか?
間違っている場合は訂正してください。ただし、エージェントを使用するには、最初の VM に接続するエージェントで別の VM を生成する必要があります。同じ VM から実行する必要があります。
Serializable を使用して Class オブジェクトを設定および取得するだけでは十分ではありません。デシリアライズ時にクラスをロードする必要があり、後続の VM インスタンスでクラス名の競合が発生する可能性があります。逆シリアル化/クラスの読み込み時にクラスの名前を一意に変更するには、バイトコードを変更する必要があります。