ClojureDocs

命名空间

clojure.reflect

Reflection on Host Types
Alpha - subject to change.

Two main entry points: 

* type-reflect reflects on something that implements TypeReference.
* reflect (for REPL use) reflects on the class of an instance, or
  on a class if passed a class

Key features:

* Exposes the read side of reflection as pure data. Reflecting
  on a type returns a map with keys :bases, :flags, and :members.

* Canonicalizes class names as Clojure symbols. Types can extend
  to the TypeReference protocol to indicate that they can be
  unambiguously resolved as a type name. The canonical format
  requires one non-Java-ish convention: array brackets are <>
  instead of [] so they can be part of a Clojure symbol.

* Pluggable Reflectors for different implementations. The default
  JavaReflector is good when you have a class in hand, or use
  the AsmReflector for "hands off" reflection without forcing
  classes to load.

Platform implementers must:

* Create an implementation of Reflector.
* Create one or more implementations of TypeReference.
* def default-reflector to be an instance that satisfies Reflector.
clojure.reflect 中的变量

*^%

->AsmReflector
类 clojure.reflect.AsmReflector 的位置工厂函数。
->Constructor
类 clojure.reflect.Constructor 的位置工厂函数。
->Field
类 clojure.reflect.Field 的位置工厂函数。
->JavaReflector
类 clojure.reflect.JavaReflector 的位置工厂函数。
->Method
类 clojure.reflect.Method 的位置工厂函数。

c

ClassResolver
无文档

d

do-reflect
无文档

f

flag-descriptors
Java 访问位标志,以及它们的友好名称和可以应用于的对象类型。

m

map->Constructor
类 clojure.reflect.Constructor 的工厂函数,获取关键字到字段值的哈希表。
map->Field
类 clojure.reflect.Field 的工厂函数,获取关键字到字段值的哈希表。
map->Method
类 clojure.reflect.Method 的工厂函数,获取关键字到字段值的哈希表。

r

reflect
Alpha - 可能会更改。反映 obj 的类型(如果 obj 是类,则反映 obj 本身)。返回值和选项与 type-reflect 中相同。
Reflector
用于反射实现者的协议。
resolve-class
给定类名,将该 typeref 的类字节返回为 InputStream。

t

type-reflect
Alpha - 可能发生变更。反射一个类型引用,返回一个包含 :bases、:flags 和 :members 的映射。在以下讨论中,名称始终为 Clojure 符号。:bases 类型的基类名称集合 :flags 命名了类型布尔属性的关键字集合。:members 类型的成员集合。每个成员都是一个映射,可以是构造函数、方法或字段。所有成员共有的键::name 类型名称 :declaring-class 声明者的名称 :flags 命名了成员布尔属性的关键字构造函数特有的键::parameter-types 参数类型名称向量 :exception-types 异常类型名称向量方法特有的键::parameter-types 参数类型名称向量 :exception-types 异常类型名称向量 :return-type 返回类型名称字段特有的键::type 类型名称选项::ancestors 除了上面描述的键以外,还包括一个包含整个祖先集合的 :ancestors 键,并将所有祖先成员添加到 :members 中。:reflector 要使用的反射器实现。默认为 JavaReflector,AsmReflector 也是一种选择。
类型名称
返回 ASM 返回的 Java 名称,例如 byte[],java.lang.String[]
类型引用
一个类型引用可以在宿主平台上明确地转换为一个类型名称。所有类型引用都规范化为符号。如果您需要自己规范一个类型引用,请调用 typesym。