base--AuditObject

//參考base-4.0.2.jar
public
class AuditObject extends HashMap<String, Object> implements TimeReferable
//參考api-1.0.0.jar
//該接口用於表示實現類是時間可參考的,也就是可以得到基準時間。
//之前的實時風控都是基於當前時間來進行的,引入該類但願將實時風控擴展到更深的領域。
public
abstract interface TimeReferable extends Serializable { public abstract Date getReferenceTime(); public abstract void setReferenceTime(Date paramDate); }
//兩個構造器,使用默認構造器時,自動生成uuid,uuid屬性與equals方法相關。
public AuditObject(String paramString1, String paramString2)
{
  this();
  setPrimaryKey(paramString1);
  setBizCode(paramString2);
}
  
public AuditObject() { setUuid(UUID.randomUUID().toString()); }
//使用get方法從HashMap中獲取對應key的value並轉化成對應類型的值
//特別注意,這些方法的修飾符爲默認(default),因此僅供包內訪問使用,可在本身寫的ETL中加上這些方法。
String getString(String paramString) { Object localObject
= get(paramString); return localObject == null ? null : localObject.toString(); } Long getLong(String paramString) { Object localObject = get(paramString); return localObject == null ? null : Long.valueOf(Long.parseLong(localObject.toString())); } Date getDate(String paramString) { Object localObject = get(paramString); return localObject == null ? null : new Date(Long.parseLong(localObject.toString())); }
  //重寫hashCode()和equals()方法
 //特別要注意的是,此處的equals()方法經過比較兩個對象的uuid是否相同來判斷兩個對象是否相同
 //默認構造器會自動生成uuid
 public int hashCode() { return getUuid().hashCode(); } public boolean equals(Object paramObject) { if (this == paramObject) { return true; } if (paramObject == null) { return false; } if (getClass() != paramObject.getClass()) { return false; } AuditObject localAuditObject = (AuditObject)paramObject; return getUuid().equals(localAuditObject.getUuid()); }
本站公眾號
   歡迎關注本站公眾號,獲取更多信息