班级

时间:2016-09-27 14:38:57

标签: java class arguments

Java类中可以声明的字段数是否有限制? This question解决了方法的参数数量,但我很想知道Java类是否有任何限制,这是什么限制。

这只是出于好奇 - 我实际上并不会宣布一个有数千个字段的课程。

2 个答案:

答案 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项的值   结构不包括从超类继承的字段   或超级接口。