代码如下:
public EventData clone() { EventData data = new EventData(); data.setTableId(tableId); data.setTableName(tableName); data.setSchemaName(schemaName); data.setDdlSchemaName(ddlSchemaName); data.setEventType(eventType); data.setExecuteTime(executeTime); data.setKeys(cloneColumn(keys)); data.setColumns(cloneColumn(columns)); data.setOldKeys(cloneColumn(oldKeys)); data.setSize(size); data.setPairId(pairId); data.setSql(sql); data.setSyncMode(syncMode); data.setSyncConsistency(syncConsistency); data.setRemedy(remedy); data.setHint(hint); data.setWithoutSchema(withoutSchema); return null; }
原提问者GitHub用户 melonboy312
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据你提供的代码来看,clone 方法的最后一行没有正确地返回 data 对象,而是返回了一个 null 值,这会导致 clone 方法始终返回 null。因此,建议将return null;修改为return data;。
修改后的代码如下:
public EventData clone() { 
    EventData data = new EventData(); 
    data.setTableId(tableId); 
    data.setTableName(tableName); 
    data.setSchemaName(schemaName); 
    data.setDdlSchemaName(ddlSchemaName); 
    data.setEventType(eventType); 
    data.setExecuteTime(executeTime); 
    data.setKeys(cloneColumn(keys)); 
    data.setColumns(cloneColumn(columns)); 
    data.setOldKeys(cloneColumn(oldKeys)); 
    data.setSize(size); 
    data.setPairId(pairId); 
    data.setSql(sql); 
    data.setSyncMode(syncMode); 
    data.setSyncConsistency(syncConsistency); 
    data.setRemedy(remedy); 
    data.setHint(hint); 
    data.setWithoutSchema(withoutSchema); 
    return data; 
}
这样修改后,clone 方法应该会正确地返回一个 EventData 对象的克隆。