如何使用Eclipse / IntelliJ在JAVA中实现宏

时间:2014-06-03 20:31:26

标签: java c++ eclipse macros intellij-idea

所以我的想法是在java中支持#Macro。不仅在最终结果中,而且在编译期间。因此,所有注射和代码完成都将正常工作。

要将宏功能添加到java,我们可以使用CPP

src/Test.java

#define READINT (new java.util.Scanner(System.in).nextInt())

class Test {
    public static void main(String[] args) {
        int i = READINT;
    }
}

cpp命令:

$ cpp -P src/Test.java preprocessed/Test.java

结果:

class Test {
    public static void main(String[] args) {
        int i = (new java.util.Scanner(System.in).nextInt());
    }
}

编译:

$ javac preprocessed/Test.java

Tnx to aioobe for original idea。

这怎么会只允许我们编译宏,我们需要一种在代码时间使用它的方法,所以如果我做这样的事情:

#define PASTE2(a, b) a##b
#define PASTE(a, b) PASTE2(a, b)
#define setParameter(type,name) private type name;public type PAST(get,name)(){return name;}

用法:

setParameter(int, value)

会产生:

int value;public int getvalue(){return value;}

我希望编译自动完成此方法。因此,它将知道该类包含来自 int

类型的getter getvalue()

还有java annotations可以在编译时工作,但我不确定它们是否可行。

0 个答案:

没有答案