Back
type-reflect (clj)
(source)function
(type-reflect typeref & options)
Alpha - subject to change.
Reflect on a typeref, returning a map with :bases, :flags, and
:members. In the discussion below, names are always Clojure symbols.
:bases a set of names of the type's bases
:flags a set of keywords naming the boolean attributes
of the type.
:members a set of the type's members. Each member is a map
and can be a constructor, method, or field.
Keys common to all members:
:name name of the type
:declaring-class name of the declarer
:flags keyword naming boolean attributes of the member
Keys specific to constructors:
:parameter-types vector of parameter type names
:exception-types vector of exception type names
Key specific to methods:
:parameter-types vector of parameter type names
:exception-types vector of exception type names
:return-type return type name
Keys specific to fields:
:type type name
Options:
:ancestors in addition to the keys described above, also
include an :ancestors key with the entire set of
ancestors, and add all ancestor members to
:members.
:reflector implementation to use. Defaults to JavaReflector,
AsmReflector is also an option.
Examples
reborg/clojure-essential-reference
(require 'clojure.reflect)
(dir clojure.reflect) ; <1>
;; ->AsmReflector
;; ->Constructor
;; ->Field
;; ->JavaReflector
;; ->Method
;; ClassResolver
;; Reflector
;; TypeReference
;; do-reflect
;; flag-descriptors
;; map->Constructor
;; map->Field
;; map->Method
;; reflect
;; resolve-class
;; type-reflect
;; typename