【发布时间】:2016-03-01 06:01:41
【问题描述】:
所以,鉴于 Java 几乎不支持无符号类型,我现在正在编写一个小型 API 来处理这些(目前,我有 UnsignedByte 和 UnsignedInt)。算法很简单:将它们中的每一个存储为它们的更高表示(byte->short,int->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 文件时都会调用/使用它?
【问题讨论】:
-
您可能会考虑使用 Guava,它已经拥有这些库 - 您不需要将无符号字节表示为短字节,如果操作正确,您可以用有符号字节表示。
-
虽然我已经提供了答案,但我认为您不会喜欢它。无论如何,您现在使用的是 Java,Java 很冗长,并且工具可以提供帮助。也就是说,使用工厂是个好主意,所以除了过度缩短的名称“U”之外,像工厂一样使用它可能是一个很好的论据。无论如何,Ctrl-Space 是你的朋友!
标签: java eclipse eclipse-plugin preprocessor unsigned