将.const文件(c+;+;)转换为.java类时出现问题

将.const文件(c+;+;)转换为.java类时出现问题,java,c++,unsigned-long-long-int,Java,C++,Unsigned Long Long Int,我有一个.const文件,比如abc.const(一个cpp文件)。该文件的内容是 xyz:ullong:0x10000000000000ull yub:ullong:0x0100000000000000ULL .... 现在我有一个程序将这个文件转换为.java类 但是当我尝试上面的方法时 我犯了以下错误 java:255:“;”预期 公共静态最终长xyz=0x10000000000000ull 我应该如何解决这个问题。 提前谢谢 (通过解决这个问题,我需要从这个.const文件生成一个.j

我有一个.const文件,比如abc.const(一个cpp文件)。该文件的内容是

xyz:ullong:0x10000000000000ull yub:ullong:0x0100000000000000ULL ....

现在我有一个程序将这个文件转换为.java类

但是当我尝试上面的方法时

我犯了以下错误

java:255:“;”预期 公共静态最终长xyz=0x10000000000000ull

我应该如何解决这个问题。 提前谢谢


(通过解决这个问题,我需要从这个.const文件生成一个.java类)

没有java等价于
无符号long

如果需要这么大的数字,则必须使用
biginger
类:

也就是说,java
long
的最大值是2^63-1。如果这对你来说够大的话,就换衣服吧

0x100000000000000ULL


没有Java等价于
无符号long

如果需要这么大的数字,则必须使用
biginger
类:

也就是说,java
long
的最大值是2^63-1。如果这对你来说够大的话,就换衣服吧

0x100000000000000ULL

  • Java中没有无符号类型,因此没有“U”数字文字说明符
  • 在Java中,一个长字符只能使用一个L,它总是64位
  • 您似乎在x之前有两个前导0
因此,Java将是:

public static final long xyz = 0x1000000000000000L;
<>注意,这不会是一个与C++相当的等价物,因为java没有前面提到的无符号类型。如果需要表示大于
Long.MAX_VALUE
的值,则应使用该类。如果您发现
long
的范围受到限制,最好还是使用原语类型。

  • Java中没有无符号类型,因此没有“U”数字文字说明符
  • 在Java中,一个长字符只能使用一个L,它总是64位
  • 您似乎在x之前有两个前导0
因此,Java将是:

public static final long xyz = 0x1000000000000000L;


<>注意,这不会是一个与C++相当的等价物,因为java没有前面提到的无符号类型。如果需要表示大于
Long.MAX_VALUE
的值,则应使用该类。如果发现
long
的限制范围,最好还是使用原语类型。

您删除了十六进制说明符,这将完全改变值。@Jon Skeet-感谢您提供的信息。但我只能在.const文件中修改。java类是在我构建.const文件时生成的。因此,const文件在C++中不接受0x100000,而是为“长”类型“错误”。那么我们现在能做什么呢?@Brian Roach-谢谢你提供的信息。但我只能在.const文件中修改。java类是在我构建.const文件时生成的。因此,const文件在C++中不接受0x100000,而是为“长”类型“错误”。那我们现在能做什么?平底船?很抱歉我没有答案,我从来没有做过你想做的事。什么在生成Java?@logeshwari ram,如果我执行
公共静态最终长L=0x1000000000000L它编译得很好。您能给出准确的代码行及其错误消息吗?您已经删除了十六进制说明符,它完全改变了值。@Jon Skeet-谢谢您提供的信息。但我只能在.const文件中修改。java类是在我构建.const文件时生成的。因此,const文件在C++中不接受0x100000,而是为“长”类型“错误”。那么我们现在能做什么呢?@Brian Roach-谢谢你提供的信息。但我只能在.const文件中修改。java类是在我构建.const文件时生成的。因此,const文件在C++中不接受0x100000,而是为“长”类型“错误”。那我们现在能做什么?平底船?很抱歉我没有答案,我从来没有做过你想做的事。什么在生成Java?@logeshwari ram,如果我执行
公共静态最终长L=0x1000000000000L它编译得很好。你能给出准确的代码行和错误消息吗?哦,是的,谢谢Jon,所以我必须在生成.java类的程序中使用这个类,对吗?@Jon Skeet-谢谢你提供的信息。但我只能在.const文件中修改。java类是在我构建.const文件时生成的。因此,const文件在C++中不接受0x100000,而是为“长”类型“错误”。那么我们现在能做什么呢?@Logeshwari:听起来你需要改变任何创建Java文件的工具,使之更智能。@Jon Skeet:哦,你知道可以做什么吗??我们应该编写一个函数,将函数(从.const)转换成L(和后缀在.java文件中),像这样或ANORTENT.R.@ LogSHWARI:我不清楚const文件的格式是什么,或者你用它来转换java,但是听起来好像工具需要更多的理解C++和java常量。你不能直接使用文本并期望它在两种语言中都能工作。哦,是的,谢谢Jon,所以我必须在生成.java类的程序中使用这个类,对吗?@Jon Skeet-谢谢你提供的信息。但我只能在.const文件中修改。java类是在我构建.const文件时生成的。因此,const文件在C++中不接受0x100000,而是为“长”类型“错误”。那么我们现在能做什么呢?@Logeshwari:听起来你需要改变任何创建Java文件的工具,使之更智能。@Jon Skeet:哦,你知道可以做什么吗??比如说,我们应该编写一个函数,将ULL(从.const)转换成L(以及.java文件中的后缀),就像这样还是那样???@Logeshwari:我不清楚w