超过方法中的参数量

时间:2014-12-05 21:30:25

标签: java avro

我正在使用Apache Avro工具从.avsc文件生成架构类。遇到我的AVRO架构中有超过300个字段的问题,导致" Java错误:参数太多"在使用这个课程时。 (因为我的架构中的每个字段都是我的架构类构造函数中的一个参数)。 Java在方法中限制了255个参数。

我知道我可以通过使用通用记录(而不是Avro工具和类生成)来解决此问题。但在我重组整个事情之前,是否有任何解决方法?

2 个答案:

答案 0 :(得分:1)

如果表(类)有300个字段,那么您的架构设计非常糟糕。

找到一些方法将数据分解为多个类和多个表。

阅读Database normalization将是一个良好的开端。

答案 1 :(得分:0)

如果您的数据包含很多字段,那么您应该重新评估您的设计。当消费者试图构造这种类型的对象时,您的代码将如何显示?

  

有没有解决方法?

不,JVM specification说:

  

通过定义,方法参数的数量限制为255   方法描述符(§4.3.3),其中限制包括一个单位   在实例或接口方法调用的情况下。注意   方法描述符是根据方法的概念定义的   参数length,其中long或double类型的参数   有两个单位的长度,所以这些类型的参数   进一步减少限制。