Java的枚举类型比较
- 使用“==”
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class Main {
public static void main(String[] args) throws Exception {
Integer i = new Integer(1111);
byte[] bytes = object2ByteArray(i);
Object o = byteArray2Object(bytes);
System.out.println(i==o);
MyEnum m = MyEnum.MyEnum1;
byte[] bytes1 = object2ByteArray(m);
Object o1 = byteArray2Object(bytes1);
System.out.println(m==o1);
}
public static Object byteArray2Object(byte[] bs) throws Exception{
ByteArrayInputStream bais = new ByteArrayInputStream(bs);
ObjectInputStream bis = new ObjectInputStream(bais);
return bis.readObject();
}
public static byte[] object2ByteArray(Object o) throws Exception{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(o);
return baos.toByteArray();
}
}
enum MyEnum {
MyEnum1(1,"枚举1"),
MyEnum2(2,"枚举2"),
;
private int code;
private String name;
MyEnum(int code, String name){
this.code = code;
this.name = name;
}
}
- 使用equals方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210604142342789.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTM4MTM0OTE=,size_16,color_FFFFFF,t_70)
与使用“==”一样。