[英]`java.lang.ClassFormatError` list of error codes
最近我收到此錯誤
Caught: java.lang.ClassFormatError: Illegal field modifier in class **** : 0x3
java.lang.ClassFormatError : Illegal field modifiers in class **** : 0x3
我一直想知道我的原因-這些錯誤代碼及其解釋的表格是否存在? 因為我很好奇0x3
是什么意思。
字段修飾符是有效修飾符的按位或。 每個有效的修飾符(其中一些在@gustf的答案中顯示)都是設置了一位的整數。
因此, 0x3
將是兩個數值為0x2
和0x1
修飾符的或。
0x2
修飾符表示ACC_PRIVATE
。 0x1
修飾符表示ACC_PUBLIC
。
這是一個矛盾-您不能同時擁有公共和私人的東西-因此0x3
是修飾符的無效組合。
JVM規范的4.5節中描述了此行為:
類的字段可以設置表4.4中的任何標志。 但是,類的特定字段最多可以設置其ACC_PRIVATE,ACC_PROTECTED和ACC_PUBLIC標志之一。
因此,規范明確禁止設置ACC_PRIVATE
和ACC_PUBLIC
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.