問題タブ [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 に答える
575 参照

java - ByteBuddy で作成されたサブインターフェイスに型注釈を継承させる方法は?

サブインターフェイスを作成するためのこの疑似テストがあり、インターフェイス S から注釈をコピーしたいのですが、機能しません。私は何を間違っていますか?

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

java - Byte Buddy に instanceField を設定する

Byte Buddy を使用してインスタンス フィールドの値を設定する方法を見つけようとしています。ドキュメントには次のように記載されています。

このような動的クラスのインスタンスでメソッドを呼び出す前に、必ずこのフィールドに値を割り当てることを忘れないでください。そうしないと、メソッド委譲によって NullPointerException が発生します。

しかし、これを行う方法に関するドキュメントや単体テストのどこにも表示されません。

私の動的クラスは次のとおりです。

コンストラクターをインターセプト@FieldProxyして aで使用するための回答が記載された別の投稿が表示されますが、MethodDelegationその方法がわかりません。私が試したことはすべて、次のような.constructor(ElementMatchers.any()).intercept(...)結果のバリエーションになります。

java.lang.IllegalArgumentException: [] のどれもからの委譲を許可していません...

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

java - 特定の名前空間からすべてのメソッド/コンストラクター/ゲッター/セッターをインターセプトする

次のように実装された Java エージェントがあります。

次にTransformクラス:

そしてインターセプター:

これの問題は、コンストラクターをインターセプトせず、この種のエラーも発生することです

インターフェイス型の非パブリックまたは非仮想メソッド 'lambda$static$1' を定義できません

あるドメインからクラス内の各メソッドをプロキシするインターセプターを作成する最良の方法は何ですか (メソッド名を取得し、メソッド引数 (存在する場合) を検査し、実行を転送できるようにしたい)。

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

java - Byte-Buddy を使用した Java エージェントが機能しない

私の実装の問題点を見つけるためにあなたの助けが必要です...

byte-buddy を使用して単純な JVM ランタイム プロファイラーを実装しようとしています。一般に、必要なのは、すべてのメソッド呼び出しが、別のオブジェクトで管理するスタックに記録されることです。

いくつかの投稿を読んだ後、「MethodDelegation」ではなく「Advise」アプローチを使用する方がよいことがわかりました。

Agent.java:

そして ProfilingAdvice.java:

何らかの理由で、ProfilingAdvice クラスの「enter」および「exit」メソッドがまったく呼び出されません。

私は何を間違っていますか?

ありがとう、エラド。

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

java - ByteBuddy: java.lang.IllegalArgumentException: 未定義の変数をアタッチできません: V

Google Guava からクラスcom.google.common.collect.ImmutableMultimap$Valuesをリベースすると、ByteBuddy から IllegalArgumentException が発生します。

内部クラスは、com.google.common.collect.ImmutableCollectionメソッドImmutableList<E> createAsList()が問題を引き起こすサブクラスです。

スタックトレース:

ここで問題を引き起こす例を作成しました: https://github.com/erikhakansson/bytebuddytest テストは以前のテストから変更されたため、ゴミが含まれている可能性があります。

テストするには、単に mvn clean install を実行してから、結果の jar を実行します。

ほとんどの場合、私は何か間違ったことをしていますが、何がわからないので、助けてください! :)

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

java - ByteBuddy を使用してクラスをサブクラス化すると、メソッドが宣言されていないクラスになります

ここには明らかな何かが欠けていますが、ByteBuddy を使用してクラスをサブクラス化すると、宣言されたメソッドが表示されません。

結果:

現在ByteBuddyを使用しています:

結果: