Java中的工具类一般是由静态方法和静态变量组成的,不需要实例化对象。因此,一旦提供了public或默认构造方法,其他程序员就可以通过创建对象的方式访问这些类,并使用其中的公共或实例方法,这将导致其使用不符合预期并且破坏了该工具类的设计初衷。
另外,Java编译器默认会为没有明确定义构造函数的类生成一个默认无参构造函数,但如果显式定义了构造函数,则默认构造函数将不再被生成。因此,如果显式声明一个public或者default构造方法,意味着覆盖了默认的无参构造函数,可能会对代码的可读性和Bug调试造成困扰。所以,在Java中,不建议在工具类中声明公共或默认构造方法。