[英]Eclipse file replacement before compile (like a pre-processor)?
因此,鉴于Java对无符号类型几乎没有支持,所以我现在正在编写一个小的API来处理这些类型(目前,我有UnsignedByte
和UnsignedInt
)。 该算法很简单:将它们中的每个存储为它们的较高表示形式( byte->short
, int->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()替换它。
您可以在以下链接中找到更多信息
我可以向您指出我所知道的一个项目是如何做到的,它们有一组Python脚本,这些脚本从模板基础文件生成一整套类(java文件)。 他们手动运行脚本,而不是部分构建。
在这里查看具体示例。 在这段代码中,他们有一个用于对double
进行操作的类,但是他们希望从此类中生成以相同的方式对float
, int
等进行操作的代码。
当然,对于是否应将生成的代码签入源存储库,存在很大的争议。 我把这个问题放在一边,希望上面的例子对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.