一尘不染

在Java中,我们可以在一个类中创建多少个构造函数?

java

在Java中,我们可以在一个类中创建多少个构造函数。


阅读 1271

收藏
2020-12-03

共1个答案

一尘不染

严格来说,JVM类文件格式将一个类的方法(包括所有构造函数)限制为少于65536。而且,根据汤姆·哈顿(Tom
Hawtin)的说法,有效限制为65527。每个方法签名在常量池中占用一个插槽。由于65535池条目中的某些条目(不可避免地)被其他事物消耗,因此格式良好的类文件不可能使用所有可能的方法/构造函数ID。

参考-JVMS 4.1
ClassFile结构

但是,如果您以正常方式编写明智的Java代码,则不会遇到该限制。

应该
有几个?这取决于类的用例。经常有多个“便利”构造函数重载,并使用this(...)链到“主”构造函数来实现它们是很好的。(但是,您可以转到顶部。有N!个N个不同参数的可能组合(重载)。)

如果发现编写的构造函数过多(主观!),则应考虑使用诸如Builder
Pattern之类的
替代方法。

2020-12-03