@Override
    public boolean equals(Object obj) {
        return msgId.equals(obj);
    }
@Test
    public void equalsTest() {
        MessageIdImpl msgId1 = new MessageIdImpl(0, 0, 0);
        MessageIdImpl msgId2 = new BatchMessageIdImpl(1, 1, 1, 1);
        TopicMessageIdImpl topicMsgId1 = new TopicMessageIdImpl("topic-partition-1", msgId1);
        TopicMessageIdImpl topic2MsgId1 = new TopicMessageIdImpl("topic2-partition-1", msgId1);
        TopicMessageIdImpl topicMsgId2 = new TopicMessageIdImpl("topic-partition-2", msgId2);

        assertEquals(topicMsgId1, topicMsgId1);
        assertEquals(topicMsgId1, topic2MsgId1);
        assertEquals(topicMsgId1, msgId1);
        assertEquals(msgId1, topicMsgId1);
        assertNotEquals(topicMsgId1, topicMsgId2);
    }