byte[] 转实体类
时间: 2023-08-06 19:09:07 浏览: 49
将一个字节数组(byte[])转换成实体类对象,需要进行反序列化操作,具体实现可以使用Java标准库中的ObjectInputStream类。以下是一个示例代码:
```java
public static <T> T deserialize(byte[] data, Class<T> clazz) throws IOException, ClassNotFoundException {
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(data));
return clazz.cast(ois.readObject());
}
```
使用示例:
```java
public static void main(String[] args) throws Exception {
// 创建实体类对象
User user = new User("Tom", 18);
// 将实体类对象转换成字节数组
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(user);
byte[] data = bos.toByteArray();
// 将字节数组转换成实体类对象
User newUser = deserialize(data, User.class);
// 输出结果
System.out.println(newUser.getName()); // Tom
System.out.println(newUser.getAge()); // 18
}
// 实体类定义
public static class User implements Serializable {
private String name;
private int age;
public User() {}
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
```
这里假设实体类User已经实现了Serializable接口,可以进行序列化和反序列化操作。如果实体类没有实现Serializable接口,则需要对其进行修改。