【问题标题】:Java Possible lossy conversion from int to byte errors [duplicate]Java可能从int到字节的有损转换错误[重复]
【发布时间】:2014-06-11 03:31:20
【问题描述】:

这发生在我从 jar 文件中反编译一些类时。这些是我唯一无法克服的错误。

所有这些错误都是“从 int 到字节的可能有损转换”。

this.onDemandFetcher.method563(1, 2, i2);
this.worldController.method291(i1, j, i, -119);
this.method563(2, 3, this.mapIndices3[k]);
this.method563(2, 3, this.mapIndices2[k]);

public boolean method286(final int j, final int k, final Animable class30_sub2_sub4, final int l, final int i1, final int j1, final int k1, final int l1, final int i2, final int j2, final int k2) {
        return class30_sub2_sub4 == null || this.method287(j, l1, k2, i2 - l1 + 1, i1 - k2 + 1, j1, k, k1, class30_sub2_sub4, l, true, j2, 0);
    }

return this.method287(i, l2, i2, j2 - l2 + 1, k2 - i2 + 1, k1, i1, k, class30_sub2_sub4, j, true, l, 0);

所有这些错误都归类为同一件事。我到底做错了什么?你能帮我修一下代码并告诉我区别吗?

【问题讨论】:

  • 为声明为byte 的(相关)参数添加(byte) 强制转换。如果我们假设代码最初是有效的,那么 (byte) 演员可能已经在原始代码中......

标签: java netbeans int byte


【解决方案1】:

“从 int 到字节的可能有损转换”意味着您的代码的某些部分需要一个字节,而您正在向它传递一个 int。字节为 8 位,整数为 32,因此进行此转换可能会丢失信息。

您还没有发布足够多的代码来了解,但它可能在 method287 的参数中。如果它需要字节,那么将它传递给 int 变量将触发此错误。您还应该记住,整数常量默认为整数 - 如果需要,您可以将它们转换为字节。

现在您知道消息的含义了,您应该能够检查代码并检查这些转换发生的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    • 2014-03-16
    相关资源
    最近更新 更多