为什么 Java 中的 DataInput 接口没有 readUnsignedInt 方法

Why DataInput interface in Java doesn't have readUnsignedInt method

Java 不支持无符号整数类型,在 Java 中表示无符号整数的最简单方法是使用更大的整数类型。
DataInput 接口确实提供了读取无符号整数类型的方法 - readUnsignedByte,returns shortreadUnsignedShort,returns [=14] =].

为什么这个接口没有 readUnsignedInt 方法 return long?有什么特别的原因吗?

澄清: 我知道 Java 8 支持无符号算术。问题不是如何处理这个问题,而是为什么DataInput接口没有这样的方法。

我不知道为什么,但这不再是问题,因为现在支持无符号整数。你可以做到

long a = Integer.toUnsignedLong(r.readInt());

DataInput/DataOutput 每个基元和字符串都有一个方法。

unsigned int 不是原语,但您可以在添加后执行以下操作。

long a = dis.readInt() & 0xFFFF_FFFFL;

dos.writeInt((int) a);

Why this interface doesn't have a readUnsignedInt method that would return long?

我假设最初的设计者认为您不需要一个,否则他们会添加一个 unsigned int 类型。

Is there any particular reason?

你可以添加很多东西(我在我的库中添加了因为我认为它们很有用)但设计师似乎相信少即是多。