当使用equals()比较枚举的时候,比较的是内存地址,和等号作用相同。 JDK1.5新特性 这个是jdk1.5新特性,这个还是很有用的。 定义 常见的使用场景:性别;星期;季节。这些固定取值空间的。 public enum 枚举名{ 枚举体(常量列表),常量之间用逗号隔开,最后的分号可以有,亦可以没有 } //下面写个性别的枚举。 public ...
如果你查看源代码.equals(),它只是按照==。==但是,我使用它,因为它将是null安全的。
我使用 == ,因为无论如何,这个左值是可以为 null的 java.lang.Enum 中Equals 代码: public final boolean equals(Object other) { return this==other; } 详细探讨 能在枚举中使用 == 进行判断? 答案是肯定的,因为枚举有着严格的实例化控制,所以你可以用 == 去做比较符,这个用法,在官方文档中也有明确...
我有5年以上的java编程经验,并且我想我也懂得 == 和 equals() 之间的区别,但是我仍然觉得很困惑,哪一个操作符才是我该使用的。 答案 二者皆对,如果你看过枚举的源码,你会发现在源码中,equals也仅仅非常简单的 == 。 我使用 == ,因为无论如何,这个左值是可以为 null的 译者补充 java.lang.Enum 中Equals ...
译者补充 java.lang.Enum 中Equals 代码: public final boolean equals(Object other) { return this==other; } 1. 2. 3. 额外答案能在枚举中使用 == 进行判断? 答案是肯定的,因为枚举有着严格的实例化控制,所以你可以用 == 去做比较符,这个用法,在官方文档中也有明确的说明。
二者皆对,如果你看过枚举的源码,你会发现在源码中,equals也仅仅非常简单的 == 。 我使用 == ,因为无论如何,这个左值是可以为 null的 java.lang.Enum中Equals 代码: public final boolean equals(Object other) {return this==other;} 详细探讨 能在枚举中使用 == 进行判断?
1)对象域,使用equals方法 。 2)类型安全的枚举,使用equals或== 。 3)可能为null的对象域 : 使用 == 和 equals 。 4)数组域 : 使用 Arrays.equals 。 5)除float和double外的原始数据类型 : 使用 == 。 6)float类型: 使用Float.foatToIntBits转换成int类型,然后使用==。
/** * 根据枚举代码获取枚举 * */publicstatic OrderStatus getByCode(String code){for (OrderStatus v : values()) {if (v.getCode().equals(code)) {return v; } }returnnull; }/** * 根据枚举名称获取枚举 * 当枚举内的实例数越多时性能越差 */publicstatic Order...
相反,如果使用equals方法,将抛出 NullPointerException: if(testPz.getStatus().equals(Pizza.PizzaStatus.DELIVERED)); if(testPz.getStatus() == Pizza.PizzaStatus.DELIVERED); 对于编译时安全性,我们看另一个示例,两个不同枚举类型进行比较,使用equal方法比较结果确定为true,因为getStatus方法的枚举值与另一个...
前两天code review,leader说枚举比较用equals不要用==,当时任务比较多,直接改了,没有深究,今天有时间搜了一下,研究了一下枚举的实现,实际测试了一下,得出结论,对于枚举,==和equals的效果是相同的 探究 源码 查看Enum的源码,可以发现Enum重写了equals且禁止重写,内部也是用的==实现的 ...