我正在寻找Java中的一些元编程函数,类似于Python的getattr,hasattr,callable等。如果没有,是否有适合的外部库?
答案 0 :(得分:1)
正如Eduardo评论的那样,你可以使用反思。这是关于它的Sun(Oracle,现在)文章:
http://java.sun.com/developer/technicalArticles/ALT/Reflection/
这应该让你朝着正确的方向前进。
答案 1 :(得分:1)
JavaBean规范也涉及这个领域。
参见java.beans.BeanInfo
还有一些库,例如commons-beanutils,它们构建在反射上,试图更像元处理。
答案 2 :(得分:1)
元编程的一些最好的“库”采用在JVM上运行的替代语言的形式;例如,Groovy语言是一种略微简化的Java,具有更好的元编程支持(以及其他功能)。
答案 3 :(得分:0)
除了反射之外,您可能对AOP(例如,通过AspectJ)感兴趣,它允许对各种Java执行序列的方法调用,转换,拦截等进行预处理和/或后处理。
没有办法拦截对不存在的方法的调用,因为这样的代码无法编译。