タグ

Reflectionに関するtakuya71のブックマーク (2)

  • 概要

    EXPERIMENTAL Heather Miller、Eugene Burmako、Philipp Haller 著 Eugene Yokota 訳 リフレクション (reflection) とは、プログラムが実行時において自身をインスペクトしたり、変更したりできる能力のことだ。それはオブジェクト指向、関数型、論理プログラミングなど様々なプログラミングのパラダイムに渡って長い歴史を持つ。 それぞれのパラダイムが、時として顕著に異なる方向性に向けて現在のリフレクションを進化させてきた。 LISP/Scheme のような関数型の言語が動的なインタープリタを可能とすることに比重を置いてきたのに対し、Java のようなオブジェクト指向言語は実行時におけるクラスメンバのインスペクションや呼び出しを実現するための実行時リフレクションに主な比重を置いてきた。 複数の言語やパラダイムに渡る主要なリフレク

  • Reflectionで型情報を取得 | Scala Cookbook

    ScalaではReflectionを使うとより詳細な型情報を取得することができます。 クラス情報を取得 (Scala2.10以前) Scala2.10以前では、以下のように型情報を取得できます。 case class Person(id:Int, name:String, age:Option[Int]) val c = classOf[Person] // Class[Person]を取得 c.getSimpleName // Person c.getName // Personクラスのパッケージ名を含むfull path しかし、Personクラスにどのような型の変数が定義されているを知りたい場合、 javaのReflection機能を使う。Class.getDeclaredFields/Methodsなど javapやASMなどでコンパイル後のバイトコードを直接参照 ScalaSig

  • 1