Java类中可以声明的字段数是否有限制? This question解决了方法的参数数量,但我很想知道Java类是否有任何限制,这是什么限制。
这只是出于好奇 - 我实际上并不会宣布一个有数千个字段的课程。
答案 0 :(得分:8)
正好为65535,不包括继承的字段。
来自Limitations of the Java Virtual Machine:
类或接口可声明的字段数量限制为65535,大小为
fields_count
ClassFile
结构fields_count
项的大小。请注意,
ClassFile
结构的abstract class A { // I need a method which always returns the same type for a transformation method, // a clone function would need the same interface abstract alwaysReturnSameType(): this } class B extends A { x:number constructor(x:number) { this.x = x } alwaysReturnSameType():this { return new B(this.x + 1) // ERROR: Type 'B' is not assignable to type 'this'. // this works, but isn't what I need: return this } }
项的值不包括从超类或超接口继承的字段。
答案 1 :(得分:4)
是,65535。这里解释https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.11
相关部分是:
类或接口可以声明的字段数 ClassFile的fields_count项的大小限制为65535 结构(§4.1)。
请注意ClassFile的fields_count项的值 结构不包括从超类继承的字段 或超级接口。