巨大的Integer的intValue()会产生错误。

问题描述 投票:2回答:1

我正在做一个asn文件结构,我现有的代码的数据类型为:。

Fieldname::= INTEGER

根据我的要求,我把它改成了。

Fieldname::= INTEGER --<HUGE>--

在通过java解析这个值时,我使用的是:

int intValue = Fieldname.intValue()

在改变数据类型(巨大的整数)后,我得到了错误。

Error:(750,121) java: cannot find symbol
Cannot resolve method 'intvalue'

这只是解析器的问题。如何将一个字符串解析为巨大的int。

java asn.1
1个回答
3
投票

你没有说你使用的是什么工具。

EDIT:从你的评论中,我了解到你使用的是OSS Nokalva。这是一个商业产品,你应该从那里寻求支持。

然而,这似乎很正常

--<HUGE>-- 是一个提示(pragma),让你的代码生成器使用一些比一个 int 在你的java代码中。(注意,就asn.1而言,它只是一个注释)。

因此,访问器将是不同的。longValue() 或者 bitIntegerValue() 或任何你的文档说的。

看一下生成的代码,你会发现它很容易。


0
投票

我已经解决了这个问题,我在java代码中使用了下面的代码来解析这个值。

BigInteger intValue = Fieldname.bigIntegerValue()
© www.soinside.com 2019 - 2024. All rights reserved.