如何在Java中转换此Objective C代码?

NSMutableString * thisPart = [[NSMutableString alloc] init];
UInt64 intVal = (UInt64)[thisPart longLongValue];
if (!intVal) { isBad = YES; break; }


我一直在互联网上搜索,但没有在互联网上找到任何有用的信息。

如果我有:

UInt32 _tmpPacket_packetId;
_tmpPacket_packetId = (UInt32)intVal;  // UInt64 intVal = (UInt64)[thisPart longLongValue];


我可以这样做吗?

BigInteger tmpPacket_packetId = intVal;


实际上,正确的问题是:这样做是否与目标C中的操作相同,是否正确?

最佳答案

我将假设您不关心NSMutableString位,该位可能类似于StringBuilder / StringBuffer类。 UInt64似乎是64位无符号整数?然后,您可以使用BigInteger(String)提供的String构造函数

StringBuilder thisPart = new StringBuilder("12345678901234567890");
try {
    BigInteger intVal = new BigInteger(thisPart.toString());
} catch (NumberFormatException e) {
    System.out.println("Bad value");
    isBad = true;
    break; // or return or what have you
}

10-01 14:51