3

我正在使用 Java 反编译器,它似乎给出了一个合理的代码,除了它为常量整数提供了奇怪的符号。例如:

#int[] arr = new int['田'];

该符号的数值为 U+7530。我想知道是否可以将此符号恢复为其数值,或者我不能依赖这种机制?

我的问题是这段代码给出了一个数组越界异常,因此调整数组的大小非常重要。

4

1 回答 1

0

在字节码级别,局部变量在布尔、字节、字符、短裤和整数之间没有区别。一切都只是在后台编译为整数,并在适当的地方插入截断指令。

这意味着反编译器必须任意决定将其反编译为哪种类型(假设没有调试元数据)。看起来您的反编译器决定将整数常量反编译为字符常量。

于 2016-07-27T02:46:19.070 回答