编译前的Eclipse文件替换(如预处理器)?

时间:2015-11-27 04:59:26

标签: java eclipse eclipse-plugin preprocessor unsigned

因此,鉴于Java几乎不支持无符号类型,我现在正在编写一个小API来处理这些(现在,我有UnsignedByteUnsignedInt)。算法很简单:将每个算法存储为更高的表示形式(byte->shortint->long),扩展Number类并实现一些计算和表示实用程序方法。

问题是:实际上非常冗长 - 而且很无聊 - 每次都必须编写如下代码:

UnsignedByte value = new UnsignedByte(15);
UnsignedByte convert = new UnsignedByte(someIntValue);

我想知道:有没有办法在Eclipse上实现类似"文件预处理器"之类的东西,它会自动用其他预定义的方式替换一些预定义的字符串编译文件之前的字符串? 例如:将U(x)替换为new UnsignedByte(x),以便可以使用:

UnsignedByte value = U(15);
UnsignedByte convert = U(someIntValue);

是的,我可以创建一个名为U(...)的方法并使用import static,但即便如此,对于每个使用我的无符号类型的类来说都是如此麻烦。

我可以编写一个简单的Java程序来替换文件中的这些表达式,但问题是:如何在Eclipse上集成它,以便每次编译Java文件时都会调用/使用它?

2 个答案:

答案 0 :(得分:0)

我建议使用Eclipse模板来代替。我知道它不是你要求的,但它非常简单,可以开箱即用。

当您在Eclipse中编写sysout并按Ctrl + Space时,它会为您提供一个用System.out.println()替换它的选项;

您可以在以下链接中找到更多信息

How to add shortcut keys for java code in eclipse

答案 1 :(得分:0)

我可以指出我所知道的一个项目如何做到这一点,他们有一组Python脚本,它们从模板基础文件生成一整套类(java文件)。他们手动运行脚本,而不是构建的一部分。

查看具体示例here。在此代码中,他们有一个用于double操作的类,但是从这个类开始,他们希望以相同的方式生成代码以对floatint等进行操作。

当然,关于是否应该检入生成的代码来检查源代码库是一个很大的争论。我把这个问题放在一边,希望上面的例子能让你顺利。