如何 return 实体的单例对象
How to return a singleton object for an entity
如何return一个实体的单例对象,用什么比较合适?
https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#singletonList-T-
https://docs.oracle.com/javase/9/docs/api/java/util/List.html#of-E-
要么。没有具体情况没办法给出更具体的建议。
或由 Oracle Dr. Joshua Bloch’s advice in Effective Java and use an enum. See tutorial on enums。
public enum ExampleSingleton {
INSTANCE;
}
用法:
System.out.println(
ExampleSingleton.INSTANCE
);
如果需要,您可以向该枚举添加构造函数和方法 class。枚举也可以实现接口。并且,Java 16 中新增了一个 enum can be defined locally.
API Support:
SingletonList 支持排序 API 而 List.Of
则不支持
Null Support:
如果您打算(出于某种奇怪的原因)有意创建一个包含空元素的单元素列表,则不能使用 List:of。它会 NullPointerException 你的脸(是的,朋友们,“NullPointerException”可以用作动词)。 Array::asList 和基于流的方法也是如此。
Collections::singletonList 会愉快地创建一个空列表。
Performance:
Collections::singletonList 的吞吐量略高,平均执行时间比 List::of 快一点,但它们提供的性能基本相同。
结论:
Collections::singletonList 和 List:of 都是创建单元素列表的绝佳选择。如果您有幸使用支持这两种方法(9 及更高版本)的 Java 版本,那么我建议使用 List:of,因为它易于使用、可读性和更好的记录不变性.
如何return一个实体的单例对象,用什么比较合适?
https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#singletonList-T-
https://docs.oracle.com/javase/9/docs/api/java/util/List.html#of-E-
要么。没有具体情况没办法给出更具体的建议。
或由 Oracle Dr. Joshua Bloch’s advice in Effective Java and use an enum. See tutorial on enums。
public enum ExampleSingleton {
INSTANCE;
}
用法:
System.out.println(
ExampleSingleton.INSTANCE
);
如果需要,您可以向该枚举添加构造函数和方法 class。枚举也可以实现接口。并且,Java 16 中新增了一个 enum can be defined locally.
API Support:
SingletonList 支持排序 API 而 List.Of
Null Support:
如果您打算(出于某种奇怪的原因)有意创建一个包含空元素的单元素列表,则不能使用 List:of。它会 NullPointerException 你的脸(是的,朋友们,“NullPointerException”可以用作动词)。 Array::asList 和基于流的方法也是如此。
Collections::singletonList 会愉快地创建一个空列表。
Performance:
Collections::singletonList 的吞吐量略高,平均执行时间比 List::of 快一点,但它们提供的性能基本相同。
结论:
Collections::singletonList 和 List:of 都是创建单元素列表的绝佳选择。如果您有幸使用支持这两种方法(9 及更高版本)的 Java 版本,那么我建议使用 List:of,因为它易于使用、可读性和更好的记录不变性.