Java 中的语言反射
编程语言
2007-05-23 v1
摘要
反射系统允许从内部改变其自身结构。此处我们关注一种称为语言反射(linguistic reflection)的反射风格,即运行中的程序生成新程序片段并将这些片段整合进自身执行的能力。我们特别描述了如何在基于编译器的、强类型的面向对象编程语言 Java 中提供此类反射。该编程技术的优势包括实现高水平的泛型性以及适应系统演化。这些优势通过取自持久化编程的一个示例加以说明,该示例展示了语言反射如何根据泛型规约按需(即时)生成功能(程序代码)并整合进演化中的运行程序。该技术在效率、安全性和易用性方面针对替代实现方法进行了评估。
引用
@article{arxiv.cs/9810027,
title = {Linguistic Reflection in Java},
author = {G. N. C. Kirby and R. Morrison and D. W. Stemple},
journal= {arXiv preprint arXiv:cs/9810027},
year = {2007}
}
备注
25 pages. Source code for examples at http://www-ppg.dcs.st-and.ac.uk/Java/ReflectionExample/ Dynamic compilation package at http://www-ppg.dcs.st-and.ac.uk/Java/DynamicCompilation/