この記事は LINE Advent Calendar 2018 の 17 日目の記事です。
こんにちは、LINEのメッセンジャーアプリのサーバーサイド開発チームに所属して、Redisの運用やArmeria の開発を担当している井出真広(@imasahiro)です。
この記事ではJava言語において、Annotation Processingを使った、最適化されたString.formatメソッドを自動生成した事例を紹介します。
1. はじめに - String.format
Applicationを記述する上で、logging、APIのresponseを構築するためなどのために、様々なデータの変換が行われています。特に、データを特定の書式に文字を整形したり、数値を0 paddingするなど、入力された書式に基づいて文字列に変換することは日常的に行われています。 そのような目的を実現するため、Java言語ではJava5から書式付き文字列を生成するためメソッドとしてString.formatが導入されました。
String.formatは引数に指定されたobjectを書