問題タブ [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.
java - プロキシ化されたクラスに package-private デフォルト コンストラクターがある場合、プロキシのインスタンス化が失敗する
ByteBuddy を使用して、パッケージのプライベート デフォルト コンストラクターを持つ型のプロキシを作成したいと思います。それはタイプです:
そして、それはプロキシの作成とインスタンス化のための私のコードです:
そのため、パブリックのデフォルト コンストラクターをプロキシ タイプに追加し、その呼び出しをインターセプトして、スーパー タイプ コンストラクターに委譲しようとしています。IllegalAccessException
これは、生成されたコンストラクターで失敗します。
プロキシはプロキシされたクラスと同じパッケージにあるため、その呼び出しが失敗する理由は明確ではありません。ここで何が間違っていますか?プロキシがデフォルトの可視性でスーパーコンストラクターを呼び出す別の方法はありますか?
java - 新しく定義されたフィールドにデフォルト値を割り当てる方法は?
ByteBuddy を使用するのは初めてで、型のmyValuejava.lang.Object
という名前のパブリック フィールドが 1 つだけで、デフォルト値が "Hello World !"のサブクラスを動的に作成したいと考えています。残念ながら、 myClass.newInstance() を呼び出した後、フィールドの値は(Eclipse デバッガー内で) になります。java.lang.String
null
ここで何か不足していますか?
私はEclipse Mars.2、Oracle JDK 1.7.0_75、およびByteBuddy-1.2.3を使用しています
java - ByteBuddy の不正なインターフェイス タイプ
ByteBuddy 0.6.15 から 1.2.3 にアップグレードしていますが、「Illegal interface type」という例外が発生します。私はそれをこの短いコードに要約することができました:
0.6.15 ではこれが機能していましたが、1.2.3 では例外が発生しました。以下を参照してください。
インターフェイスのどこが違法なのか、それを機能させるために何を変更する必要があるのか わかりません。最初はメソッドで何もしていないからかなと思ったのですdoSomething
が、インターフェースが完全に空の場合も同じエラーが発生します。
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!
java - コード生成を使用して POJO の状態を追跡する方法
クライアント POJO インスタンスの状態をパフォーマンスの高い方法で追跡するソリューションを探しています。私たちが期待しているのは、POJO で変更が行われるたびに、セッターを使用してこの状態が作成されることです。OGNL ベースのウォッチング / イベント バスを作成しました。変更が行われると、適切なOgnlChangeEvent
イベント バスに送信されます。
これまで、AspectJ / cglib / オブジェクト グラフの Diff ソリューションを調べてきましたが、どれも CPU 時間を占有しすぎていました。現在のソリューションは Spring に基づいており、Getter メソッドが呼び出されるたびMethodInterceptor
に新しいインスタンスを作成しています。Proxy
この時点で、コード生成ソリューションを検討し始めており、Byte Buddy に出会いました。この方向はそうする正しい方法ですか?Class
クライアントの POJO State を拡張し、setter メソッドが呼び出されるまでその OGNL プレフィックスについて通知するnew を生成できますか?
java - Bytebuddy インターセプト例外スロー
bytebuddy を使用して例外スローをインターセプトし、ログに記録したいと思います。出来ますか?そうでない場合、それを可能にする他のツールは何ですか?
java - フィールドライターインターセプター
私は Byte Buddy を研究しており、CGLib をそれに置き換えようとしています。任意のフィールドへの書き込みを傍受するために実装する方法があるかどうかを知りたいです。フィールド タイプがわからず、割り当てられた値を変更したくありません。field written!
私はすべてのアクセスにログオンしたいだけです。
例: このクラスがある場合:
後で私がこれを行うとき:
出力する必要があります:
Custom Instrumentationの下のヘルプ ページに例がありますが、明確ではありません。