/** * 拷贝本对象。本拷贝既不是深拷贝,也不是影子拷贝。 * * <p>拷贝件中的联系人(对方)与原件的引用相同,拷贝件中的消息时间、消息内容是原件消息的深拷贝。 */ @Override public MessageLogRecord clone() { MessageLogRecord clone = null; try { clone = (MessageLogRecord) super.clone(); clone.mDate = getDate(); clone.mMessage = getMessage(); } catch (CloneNotSupportedException e) { throw new RuntimeException("can't clone MessageLogRecord", e); } return clone; }
/** * 判断指定对象是否是本类(或{@link #mDefaultValue})的实例 * * @param o 待测试对象 * @return 如果是本类(或{@link #mDefaultValue})的实例,返回true;不是,返回false */ protected boolean isSameClass(Object o) { return getClass() == o.getClass() || mDefaultValue.getClass() == o.getClass(); }