繁体   English   中英

在编译之前替换Eclipse文件(像预处理器一样)?

[英]Eclipse file replacement before compile (like a pre-processor)?

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

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

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

我想知道:是否有任何方法可以在Eclipse上实现类似于“文件预处理器”的方式,以便在编译文件之前将其自动替换为其他预定义的字符串? 例如:用new UnsignedByte(x)替换U(x) ,因此可以使用:

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

是的,我可以创建一个名为U(...)的方法并使用import static ,但是即使那样,对于每个使用我的无符号类型的类而言,这样做也将非常麻烦。

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

我建议改用Eclipse模板。 我知道它不完全是您所要的,但它非常简单,可以立即实现。

当您在Eclipse中编写sysout并按Ctrl + Space时,可以使用System.out.println()替换它。

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

如何在Eclipse中为Java代码添加快捷键

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

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

当然,对于是否应将生成的代码签入源存储库,存在很大的争议。 我把这个问题放在一边,希望上面的例子对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM