【问题标题】:intValue() for huge Integer is throwing error巨大整数的 intValue() 抛出错误
【发布时间】:2020-06-08 05:28:41
【问题描述】:

我正在研究 asn 文件结构。 我现有的代码的数据类型为:

Fieldname::= INTEGER

根据我的要求,我改成了:

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

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

int intValue = Fieldname.intValue()

更改数据类型(大整数)后出现错误:

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

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

【问题讨论】:

  • 您的错误表明您正在调用一个不存在的方法。这看起来不像是解析错误。
  • @jnrdn0011 当我使用数据类型作为整数时,我没有收到任何调用方法错误。只有在将其更改为巨大的整数后,我才会得到这个。

标签: java asn.1


【解决方案1】:

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

编辑:根据您的评论,我了解到您正在使用 OSS Nokalva。这是一个商业产品,您应该从那里寻求支持。

不过,这似乎很正常

--&lt;HUGE&gt;-- 是您的代码生成器在您的 java 代码中使用比 int 更大的东西的提示(pragma)。 (请注意,就 asn.1 而言,它只是一个注释)。

因此,访问者会有所不同:longValue()bitIntegerValue() 或您的文档所说的任何内容。

看看生成的代码,你会很容易找到的

【讨论】:

  • 使用整数时,我遇到了解码问题。 ---- 不是提示。我已经添加它来解析更大的值。我正在使用 oss nokalva 工具,其中 asn 文件(带有 HUGE)编译良好。但在我的 java 代码中,我遇到了问题。
【解决方案2】:

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

BigInteger intValue = Fieldname.bigIntegerValue()

【讨论】:

    猜你喜欢
    • 2016-08-24
    • 1970-01-01
    • 2014-02-23
    • 2016-08-22
    • 2018-01-09
    • 1970-01-01
    • 2022-07-11
    • 2011-11-10
    • 1970-01-01
    相关资源
    最近更新 更多