コンテンツへスキップ
uencoder

Reflection

リフレクションは実行時に型情報を検査・操作する。クラス名、フィールド、メソッド、アノテーションを扱い、メソッドを動的に呼び出し、インスタンスを生成する。

目的

実行時の型イントロスペクションと動的操作を可能にし、フレームワークやシリアライズを支える。

メカニズム

リフレクション API で Class オブジェクトを取得し、フィールド・メソッド・アノテーションを列挙し、メソッドを動的に呼び出し、インスタンスを構築してフィールドへアクセスする。Java や C# のリフレクションは強力だが、性能上のオーバーヘッドがある。Go はインタフェースの型アサーションを用いる。

ユースケース

  • フレームワークの実装
  • シリアライズ
  • 依存性の注入(DI)

関連ツール

References