我读(并且我目前正在使用它),每当我需要unsigned int时,我可以使用long。这对我来说很好,但感觉就像一个糟糕的设计。是否有更好,更被接受的方式来做到这一点?那些未签约的多头呢?
答案 0 :(得分:1)
由于Java中唯一的无符号基本类型是char
,它具有非常具体的含义来表示unicode字符,因此使用long
是最惯用的方式。
默认情况下,JAXB也将xsd:unsignedInt
映射到long
。 (source)
编辑:如果你知道最高位是0,或者只使用符号无关紧要的操作(例如,你只是传递数据),{{1}可能更常见。 JAXB仅默认为int
,因为它无法知道您打算如何使用数据。
答案 1 :(得分:1)
Java没有选择无符号类型,您使用大于原始无符号类型的签名类型来解决限制,但是您使用了所需内存的两倍。
在java中没有unsigned的概念。