当前位置:  开发笔记 > 编程语言 > 正文

Java中是否可以进行静态元编程?

如何解决《Java中是否可以进行静态元编程?》经验,为你挑选了3个好方法。

我是C++中静态元编程的粉丝.我知道Java现在有泛型.这是否意味着Java中可能存在静态元编程(即编译时程序执行)?如果是这样,任何人都可以推荐任何可以了解更多信息的好资源吗?



1> Thomas..:

不,这是不可能的.泛型不如模板强大.例如,模板参数可以是用户定义的类型,基元类型或值; 但通用模板参数只能是Object其子类型.

编辑:这是一个老答案; 自2011年以来,我们拥有Java 7,它具有可用于此类技巧的Annotations.


一句话:类型安全.(零......一个......看?一个字.)
然而,反射比模板更强大 - 为什么你会使用错误的工具(泛型)来完成这项工作?

2> Lou Franco..:

看看Clojure.它是一个带有宏的LISP(元编程),它运行在JVM上,并且与Java非常互操作.



3> iirekm..:

"静态元编程"是什么意思?是的,C++模板元编程在Java中是不可能的,但它提供了其他方法,比C++中的方法更强大:

反射

面向方面的编程(@AspectJ)

字节码操作(Javassist,ObjectWeb ASM,Java代理)

代码生成(注释处理工具,Velocity等模板引擎)

抽象语法树操作(由流行的IDE提供的API)

即使在运行时也可以运行Java编译器并使用已编译的代码

没有最好的方法:每种方法都有其优点和缺点.由于JVM的灵活性,Java中的所有这些方法都可以在编译时和运行时使用.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有