クラスを動的に作成します。バイトコードを構築し、クラスローダーで読み込むことによってクラスを動的に作成します。その後、私はこのクラスのInputStream
を取得する必要があります。一般的なクラスでは、私はこのクラスのリソースURL
を取得し、ストリーム(url.openStream()
)を開いてこれを取得します。明らかに、ここで私はそれを行うことはできません。動的にロードされるクラスにURLがないためです。(バイトコードを使用して)動的に作成されたクラスのInputStreamを取得しますか?
動的に作成されたクラスのInputStream
はどうすれば入手できますか?
atmの唯一の解決策は、バイトコードを一時ファイル/メモリに保存してから、InputStream
を提供することです。
EDIT
私は、既存の上に別のバイトコードの変更を行うためにInputStream
を必要としています。
バイトコードを 'byte []'として持っていれば、 'ByteArrayInputStream'を作ることができます。 –
私はそれを持っていますが、それはアプリの別の場所と異なる時に生成されます。生成された各プロキシクラスに対して 'byte []'をすべて集めるようになると、あまりにも多くなります。とにかく、私はこのオプションを模索しています。 – igr
あなたはInputStreamで何をする必要があるのかを明示していないので、私は推測することしかできませんが、ObjectInputStreamが役に立ちますか? ref:[ObjectInputStreamのjavadoc](https://docs.oracle.com/javase/7/docs/api/java/io/ObjectInputStream.html) – mangotang