2017-04-01から1ヶ月間の記事一覧

Byte BuddyのAdvice APIを触ってみる

はじめに 前回から色々と触ってきた Byte Buddyというライブラリですが、自分の頭の整理のために ここに簡単にまとめておく。 Byte Buddyはバイトコード操作用のライブラリがあり その中にAdviceというAPIが存在する。 このAPIでは、メソッドの先頭や最後に…

バイトコード操作でロギング処理を追加する

はじめに 前回はただフィールドを追加するだけのコードを書きました。 なんのひねりもありません。 progret.hatenadiary.com そして今回はメソッドの最初と最後にロギング処理を追加します。 今回は簡単化のため、標準出力に出力します。 今回の記事ではJava…

バイトコード操作でフィールドの追加をする

バイトコード操作を使って 本記事では、フィールドを追加してみます。 対象クラスをAfterのような形に操作してみます。 (テストではstaticな内部クラス) // Before class Some{} // After class Some{ private String foo; } Javassistでフィールドを追加…

ラムダ式、完全マスターした。

今日はここのところずっと調べていたラムダ式、およびメソッド参照について調べていましたので それをこの記事でまとめたいと思います。 まずはじめに。 ここに、テストコードを含む、ラムダ式およびその他のコードをあわせた、3種類のコードを用意した。 も…

MethodHandlesで遊ぶ

初めに 今回出てくるのはこの辺 MethodHandles (Java Platform SE 8) MethodType (Java Platform SE 8) MethodHandle (Java Platform SE 8) MethodHandles.Lookup (Java Platform SE 8) MethodHandleの朝はLookupオブジェクトを作ることから始まる。 Lookup …