有人知道Intellij IDEA对Java预处理的支持吗?可能有一些第三方插件?
举个例子:这里有一段为Netbeans编写的Java代码(支持预处理):
//#if JSR82
//# import javax.bluetooth.*;
//#endifNetbeans内置预处理器根据定义的预处理器键解析那些//#键和注释或取消注释代码片段。
我希望在Intellij IDEA中也会有类似的东西。
提前感谢
发布于 2010-12-30 03:14:04
(这对于评论来说太长了,因此答案并不是真正的答案,而更像是一个评论)。
我在Java预处理器和IntelliJ IDEA方面有丰富的经验。我不知道有什么插件/插件可以与预处理器一起工作(但那会很棒)。
除此之外,当讨论到Java和预处理器时,人们总是会指出“这样的东西并不存在”。
当然,其中有几个是存在的。例如,这里有一篇很酷的诺基亚(你可能听说过该公司,他们生产一些Java手机)的文章:"Java ME移植使用预处理器指令“。
事实是: Java从来没有兑现它的WORA承诺,特别是在J(2)ME世界中。
http://wiki.forum.nokia.com/index.php/Java_ME_Porting_using_preprocessor_directives
使用自定义(遗憾的是自定义)预处理器和代码生成器的另一个非常有效的原因可以在(出色的) Trove API源代码中看到:基本上这是避免对所有Java原语重复相同代码的唯一方法,等等。
我还听说人们想要生成“相同”.jar的不同版本,而不是将所有代码放在生成的各种.jars中。当然,这可以用一种"Java友好的方式“来完成,使用惊人的变通方法……但在这种情况下,一些预处理也可以节省时间。
要点是:对于Java预处理器,是有效的情况。我倾向于喜欢诺基亚one,因为它很难反驳;)
发布于 2010-12-30 03:45:02
您可能需要考虑为库的不同版本配置不同的artifacts,然后重新构建代码,以便将特定于版本的代码隔离在仅包含在相关构件中的子类/组件中。这可能是不切实际的,特别是在现有的项目中,但比编写插件麻烦更少。Maven通过分类器具有类似的功能。
发布于 2010-12-30 02:51:03
Java程序员通常不像C/C++那样使用预处理器。其他的技术和系统已经被开发出来了,比如注解,代码生成等等。也许如果你让我们知道你正在尝试解决什么问题,有人会知道有一种java友好的方式来帮助你。
编辑:我认为大家的共识是您正在考虑编写一个IntelliJ插件
https://stackoverflow.com/questions/4556864
复制相似问题