問題タブ [byte-buddy]

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.

0 投票する
1 に答える
196 参照

java - プロキシ化されたクラスに package-private デフォルト コンストラクターがある場合、プロキシのインスタンス化が失敗する

ByteBuddy を使用して、パッケージのプライベート デフォルト コンストラクターを持つ型のプロキシを作成したいと思います。それはタイプです:

そして、それはプロキシの作成とインスタンス化のための私のコードです:

そのため、パブリックのデフォルト コンストラクターをプロキシ タイプに追加し、その呼び出しをインターセプトして、スーパー タイプ コンストラクターに委譲しようとしています。IllegalAccessExceptionこれは、生成されたコンストラクターで失敗します。

プロキシはプロキシされたクラスと同じパッケージにあるため、その呼び出しが失敗する理由は明確ではありません。ここで何が間違っていますか?プロキシがデフォルトの可視性でスーパーコンストラクターを呼び出す別の方法はありますか?

0 投票する
1 に答える
631 参照

java - 新しく定義されたフィールドにデフォルト値を割り当てる方法は?

ByteBuddy を使用するのは初めてで、型のmyValuejava.lang.Objectという名前のパブリック フィールドが 1 つだけで、デフォルト値が "Hello World !"のサブクラスを動的に作成したいと考えています。残念ながら、 myClass.newInstance() を呼び出した後、フィールドの値は(Eclipse デバッガー内で) になります。java.lang.Stringnull

ここで何か不足していますか?

私はEclipse Mars.2、Oracle JDK 1.7.0_75、およびByteBuddy-1.2.3を使用しています

0 投票する
1 に答える
426 参照

java - ByteBuddy の不正なインターフェイス タイプ

ByteBuddy 0.6.15 から 1.2.3 にアップグレードしていますが、「Illegal interface type」という例外が発生します。私はそれをこの短いコードに要約することができました:

0.6.15 ではこれが機能していましたが、1.2.3 では例外が発生しました。以下を参照してください。

インターフェイスのどこが違法なのか、それを機能させるために何を変更する必要があるのか​​ わかりません。最初はメソッドで何もしていないからかなと思ったのですdoSomethingが、インターフェースが完全に空の場合も同じエラーが発生します。

0 投票する
1 に答える
1436 参照

java - Retransform classes with Byte Buddy

Is Byte Buddy able to Instrumentation#retransformClasses that are already loaded? I want to use Byte Buddy's Java agent feature so that I don't have to specify the -javaagent to be able to instrument classes. This is possible for example with Javassist. But I'm evaluating to replace it with Byte Buddy.

I want to insert a static method call before and after certain methods. If that's possible, an short example would be great!

0 投票する
2 に答える
360 参照

java - コード生成を使用して POJO の状態を追跡する方法

クライアント POJO インスタンスの状態をパフォーマンスの高い方法で追跡するソリューションを探しています。私たちが期待しているのは、POJO で変更が行われるたびに、セッターを使用してこの状態が作成されることです。OGNL ベースのウォッチング / イベント バスを作成しました。変更が行われると、適切なOgnlChangeEventイベント バスに送信されます。

これまで、AspectJ / cglib / オブジェクト グラフの Diff ソリューションを調べてきましたが、どれも CPU 時間を占有しすぎていました。現在のソリューションは Spring に基づいており、Getter メソッドが呼び出されるたびMethodInterceptorに新しいインスタンスを作成しています。Proxy

この時点で、コード生成ソリューションを検討し始めており、Byte Buddy に出会いました。この方向はそうする正しい方法ですか?Classクライアントの POJO State を拡張し、setter メソッドが呼び出されるまでその OGNL プレフィックスについて通知するnew を生成できますか?

0 投票する
1 に答える
630 参照

java - Bytebuddy インターセプト例外スロー

bytebuddy を使用して例外スローをインターセプトし、ログに記録したいと思います。出来ますか?そうでない場合、それを可能にする他のツールは何ですか?

0 投票する
1 に答える
140 参照

java - フィールドライターインターセプター

私は Byte Buddy を研究しており、CGLib をそれに置き換えようとしています。任意のフィールドへの書き込みを傍受するために実装する方法があるかどうかを知りたいです。フィールド タイプがわからず、割り当てられた値を変更したくありません。field written!私はすべてのアクセスにログオンしたいだけです。

例: このクラスがある場合:

後で私がこれを行うとき:

出力する必要があります:

Custom Instrumentationの下のヘルプ ページに例がありますが、明確ではありません。