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
Integer i = new Integer(1111);
byte[] bytes = object2ByteArray(i);
Object o = byteArray2Object(bytes);
System.out.println(i==o);//结果为false
//测试Enum
MyEnum m = MyEnum.MyEnum1;
byte[] bytes1 = object2ByteArray(m);
Object o1 = byteArray2Object(bytes1);
System.out.println(m==o1);//结果为true
}
//把字节数组反序列化为对象
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方法
与使用“==”一样。
更多推荐
Java的枚举类型比较
发布评论