LocalDate没有构造函数...我们如何创建没有构造函数的类?

bra*_*912 5 java java-8

我正在审查Time包的Java 8类,我对没有像LocalDate类这样的构造函数的类有疑问.

如果你创建一个Java类,这个类将始终有一个默认的构造函数,但是LocalDate没有构造函数,也就是说,你不能这样做:

LocalDate date = new LocalDate();

如果这样做,您将收到编译错误"构造函数LocalDate()未定义".

为什么LocalDate没有默认构造函数?

而最重要的问题是......如何创建一个没有构造函数的类,只能实例化调用静态方法?

非常感谢和问候.

bma*_*ies 9

这里的典型模式是仅具有privatepackage default构造函数的类,与工厂方法相结合,工厂方法是类的公共静态方法或附带工厂类的方法.您可以LocalDatejavadoc中列出的许多静态方法中获取对象.


小智 8

LocalDate d = LocalDate.now(); 
Run Code Online (Sandbox Code Playgroud)

现在创建一个 LocalDate。有更多静态方法可以实例化 LocalDate。API 的设计者决定创建静态方法来实例化 LocalDates,因为它们可以在实际实例化的内容上有更清晰的名称(例如上面的“now()”为当前日期创建 LocalDate)。