有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

为Java对象生成校验和

我有一个实现可序列化的Java类:

Class A implements Serializable {
    public String name;
    int contact;
}

我将这个Java对象存储在mongodb中。如何为这个Java对象生成校验和

public String generateChecksum throws Exception(A object){
     ByteArrayOutputStream baos = new ByteArrayOutputStream();
     ObjectOutputStream oos = new ObjectOutputStream(baos);
     oos.writeObject(object);

     MessageDigest md = MessageDigest.getInstance("MD5");
     byte[] thedigest = md.digest(baos.toByteArray());
     String hex =  DatatypeConverter.printHexBinary(thedigest);
     System.out.println(hex);
}

我得到一份工作

Null Pointer Exception at oos.writeObject(object).

有更好的方法吗


共 (2) 个答案

  1. # 1 楼答案

    问题似乎是您的代码没有编译

    Class A implements Serializable {
    
    
    public String generateChecksum throws Exception(A object){
    
  2. # 2 楼答案

    除非您对校验和有特定的要求,否则最简单的方法是使用哈希代码

    @Override
    public int hashCode() {
        return Objects.hash(name, contact);
    }
    
    public static String hashCodeString(Object a) {
        return Integer.toHexString(a.hashCode());
    }