問題タブ [dynamic-class-creation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JVM での実行時の動的クラス生成
実行時に入力を取得し、それを使用して新しいクラスを作成し、それを JVM にロードして実行する必要があります。
これはすぐに抽象的な質問になり、具体的な回答が最小限になる可能性があるため、「スタックオーバーフローには不適切」とマークされますが、これに関する具体的な回答を本当に探しています。
これに関する多くのリソースを読みました。バイト コードの操作 (どのように開始するのかさえわかりません) から、JVM 内のすべてのクラスを再帰的にロードするまでの範囲を明らかにしました。
現在、.java
ファイルを動的に作成してから、システムコンパイラへの参照を取得し、それを使用してクラスファイルにコンパイルしています。次に、クラスのdefineClass()
メソッドを使用して、JVM へのロード を試みます。ClassLoader
これらの手順を実行した後、私はNoClassDefError
スローされましたが、これは理にかなっています.JVMにロードされたこの新しい動的に記述されたクラスを正しく取得する方法についての入力が必要ですか?
誰かのコメントによってもたらされた懸念に応えて、これは 100% 実験であり、学習目的のみです。これは製品化されるものではありません。
byte-buddy - ByteBuddy インターセプト コンストラクター引数
カスタム コンストラクターで ByteBuddy を使用してクラスを動的に作成しようとしています。Byte Buddy を使用した Intercepting デフォルト コンストラクターを読み、それに基づいて次のコード ベースを作成しました。
私の質問は、スーパーコンストラクターを呼び出す前後に追加したカスタムコードで、「foo」コンストラクターの整数引数にどのようにアクセスできるかです。