开源项目SDK:https://github.com/mingyang66/spring-parent
个人文档:https://mingyang66.github.io/raccoon-docs/#/
比较运算符==是比较两个对象在内存中的引用,equals方法是比较两个对象的值是否相等。
摆列类型是一种特别的类类型,它包罗了一组固定的常量,每个摆列常量在JVM中都是唯一的,且摆列类型本身保证了这些常量的唯一性。
推荐使用==而不是equals方法的缘故起因重要有以下几点:
- 性能:比较运算符==通常比调用equals方法更快,因为它直接在内存中比较两个引用的地点,而不需要执行方法调用和额外的比较逻辑。
- 语义清晰:使用比较运算符==对于摆列值的比较在语义上更清晰,因为它直接表达了比较的是两个摆列常量是否相同。而equals方法可能被重写以用于更复杂的对象比较逻辑,这在摆列类型的上下文中可能不是必需的。
- 避免意生手为:如果将来有人重写了摆列类型的equals方法,那么使用equals方法进行比较可能会引入意生手为。而使用则不会收到这种影响,因为比较的是引用而不是方法实现。
- public enum Level {
- ERROR(40, "ERROR"),
- WARN(30, "WARN"),
- INFO(20, "INFO"),
- DEBUG(10, "DEBUG"),
- TRACE(0, "TRACE");
- }
-
- Level level = Level.INFO;
- if (Level.INFO.equals(level)) {
- System.out.println("INFO");
- }
- if (Level.INFO == level) {
- System.out.println("INFO");
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |