Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Intellij IDEA中的Java预处理支持_Java_Ide_Preprocessor_Intellij Idea - Fatal编程技术网

Intellij IDEA中的Java预处理支持

Intellij IDEA中的Java预处理支持,java,ide,preprocessor,intellij-idea,Java,Ide,Preprocessor,Intellij Idea,有人知道Intellij IDEA中的Java预处理支持吗?可能有一些第三方插件 举个例子:下面是一段为Netbeans编写的Java代码(它支持预处理): Netbeans内置预处理器根据定义的预处理器键解析那些//#键和注释或取消注释代码段 我希望Intellij IDEA中也有类似的东西 Thanx PrevanceJava程序员通常不像C/C++那样使用预处理器。其他技术和系统已经开发出来,如注释、代码生成等。如果您让我们知道您试图解决的问题,可能会有人知道一种java友好的帮助方法 编

有人知道Intellij IDEA中的Java预处理支持吗?可能有一些第三方插件

举个例子:下面是一段为Netbeans编写的Java代码(它支持预处理):

Netbeans内置预处理器根据定义的预处理器键解析那些//#键和注释或取消注释代码段

我希望Intellij IDEA中也有类似的东西


Thanx Prevance

Java程序员通常不像C/C++那样使用预处理器。其他技术和系统已经开发出来,如注释、代码生成等。如果您让我们知道您试图解决的问题,可能会有人知道一种java友好的帮助方法

编辑:我认为大家的共识是,你正在考虑编写一个IntelliJ插件(这对于评论来说太长了,因此答案不是真正的答案,而是更多的评论)

我曾广泛使用Java预处理器和IntelliJ IDEA。我不知道有哪种插件/附加组件可以与预处理器一起工作(但那太好了)

除此之外,当讨论Java和预处理器时,人们总是会指出“这样的东西不存在”

当然,其中也有一些是存在的。例如,这里有一篇很酷的诺基亚(你可能听说过那家公司,他们生产一些Java手机)文章,名为:“使用预处理器指令进行Java ME移植”

事实是:Java从未兑现其WORA承诺,尤其是在J(2)ME世界

使用自定义(不幸的是自定义)预处理器和代码生成器的另一个非常有效的原因可以从(优秀的)TroveAPI源代码中看出:基本上,这是避免对所有Java原语重复相同代码的唯一方法,等等

我还听说有人希望生成不同版本的“同一个”.jar”,而不将所有代码放在生成的各种.jar中。当然,这可以通过一种“Java友好的方式”使用令人惊讶的变通方法来实现。。。但在这种情况下,一些预处理也可以节省时间


要点是:对于Java预处理器,是有效的。我倾向于喜欢诺基亚一号,因为很难与之抗辩;)

您可能希望为不同版本的lib配置不同的代码,然后重新构造代码,将特定于版本的代码隔离在仅包含在相关工件中的子类/组件中。这可能是不切实际的,尤其是在现有项目中,但比编写插件麻烦更少。Maven通过分类器具有类似的功能。

你所说的预处理是什么意思?就像在C/C++中一样,你是否试图生成同一个库的两个不同版本?一个支持/需要JSF82的版本和一个不支持JSF82的版本。@Vladimir Ivanov:“预处理”的意思是,这在OP正在开发的移动世界中非常常见:一个Java应用程序通常会生成数十个甚至数百个不同的版本。参见我的答案,诺基亚解释了如何为J(2)ME应用程序使用预处理器。@sblundy或多或少,方法很简单:1个代码-多个jar/lib,取决于设备/环境whatsoeverDisagree。。。Java不支持预处理,但IDE支持。。。例如,Netbeans IDE支持预处理从Sun查看此文档,了解原因:@barmaley有趣。然而,java的文化是对这种CISM表示不满。我不应该对这些东西的存在感到惊讶,但在我用java编写代码的这些年里,这是我第一次听说它们。很少有java开发人员在使用它们。@sblundy可能很少,但我知道java中很多预处理方法的实现,我一直在积极地使用它,所以你为什么在这里问这个问题?也许你应该问问JetBrains为什么不支持它,或者自己写一个IntelliJ插件。IntelliJ 10.0.1没有列出诺基亚插件。如果有一个很大的市场,也许是时候有人写一个了。我想知道,iPhone、Android和Windows Mobile似乎正在瓜分这个市场,现在这个市场发生了什么?我必须检查一些数据才能看到。@duffymo:IntelliJ IDEA中不需要诺基亚插件。诺基亚拥有它们(也称为诺基亚开发平台)——只需将它们作为JDK导入即可——接着说:)是的——至少是建设性的——不像其他人那样完全不同意。我听说过这种方法,但在我看来,它太学术化了,离实际应用还很远。无论如何,我的“+”@barmaley-我倾向于同意。他们只是在上一个版本中添加的,仍然需要润色。
//#if JSR82
//# import javax.bluetooth.*;
//#endif