gpt4 book ai didi

java - `java.lang.ClassFormatError` 错误代码列表

转载 作者:行者123 更新时间:2023-12-01 07:03:00 40 4
gpt4 key购买 nike

最近我遇到了这个错误

Caught: java.lang.ClassFormatError: Illegal field modifier in class **** : 0x3
java.lang.ClassFormatError : Illegal field modifiers in class **** : 0x3

我知道原因,我一直想知道 - 是否有这些错误代码及其解释的表格?因为我很好奇0x3是什么意思。

最佳答案

字段修饰符是有效修饰符的按位或。每个有效的修饰符(其中一些显示在 @gustf 的答案中)都是具有单个位设置的整数。

因此,0x3 将是两个具有数值 0x20x1 的修饰符的 OR。

0x2 修饰符表示 ACC_PRIVATE0x1 修饰符表示 ACC_PUBLIC

这是一个矛盾 - 你不能同时拥有公共(public)和私有(private)的东西 - 因此 0x3 是无效的修饰符组合。

Section 4.5 of the JVM spec 中描述了此行为:

Fields of classes may set any of the flags in Table 4.4. However, a specific field of a class may have at most one of its ACC_PRIVATE, ACC_PROTECTED, and ACC_PUBLIC flags set ...

因此,规范明确禁止设置 ACC_PRIVATEACC_PUBLIC

关于java - `java.lang.ClassFormatError` 错误代码列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36270028/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com