@Override
    public boolean equals(Object o) {
        if (this == o)
            return true;
        if (o == null || getClass() != o.getClass())
            return false;
        ComplexBean that = (ComplexBean) o;
        // Probably incorrect - comparing Object[] arrays with Arrays.equals
        if (!Arrays.equals(strs, that.strs))
            return false;
        // Probably incorrect - comparing Object[] arrays with Arrays.equals
        if (!Arrays.equals(jobs, that.jobs))
            return false;
        if (list != null ? !list.equals(that.list) : that.list != null)
            return false;
        if (map != null ? !map.equals(that.map) : that.map != null)
            return false;
        return clazz != null ? clazz.equals(that.clazz) : that.clazz == null;
    }
@Override
    public boolean equals(Object o) {
        if (this == o)
            return true;
        if (o == null || getClass() != o.getClass())
            return false;
        ComplexBean that = (ComplexBean) o;
       
        if (!Arrays.equals(strs, that.strs))
            return false;
       
        if (!Arrays.equals(jobs, that.jobs))
            return false;
        if (list != null ? !list.equals(that.list) : that.list != null)
            return false;
        if (map != null ? !map.equals(that.map) : that.map != null)
            return false;
        return clazz != null ? clazz.equals(that.clazz) : that.clazz == null;
    }
@override public boolean equals(object o) { if (this == o) return true; if (o == null || getclass() != o.getclass()) return false; complexbean that = (complexbean) o; if (!arrays.equals(strs, that.strs)) return false; if (!arrays.equals(jobs, that.jobs)) return false; if (list != null ? !list.equals(that.list) : that.list != null) return false; if (map != null ? !map.equals(that.map) : that.map != null) return false; return clazz != null ? clazz.equals(that.clazz) : that.clazz == null; }