### Question:
RowKeyCoder { public static RowKey decode(byte[] bytes){ byte[] longBytes = new byte[Constant.POINT_LENGTH]; System.arraycopy(bytes, SALT_LENGTH, longBytes, 0, Constant.POINT_LENGTH); long pointId = Bytes.getLong(longBytes); byte[] baseTimeBytes = new byte[Constant.TIMESTAMP_LENGTH]; System.arraycopy(bytes, Constant.POINT_LENGTH + SALT_LENGTH, baseTimeBytes, 0, Constant.TIMESTAMP_LENGTH); Integer baseTime = Bytes.getInt(baseTimeBytes); RowKey rowKey = new RowKey(); rowKey.setPointId(pointId); rowKey.setBaseTime(baseTime); return rowKey; }  static byte[] encode(Long pointId, Integer baseTime); static RowKey decode(byte[] bytes); static byte[] getSalt(byte[] salt_base); static final int SALT_LENGTH; static final int BUCKETS_SIZE; }### Answer:
@Test public void testDecode() { byte[] a = {'6',0,0,0,0,0,(byte)188,97,78,89,(byte)207,(byte)205,(byte)144}; RowKey r = RowKeyCoder.decode(a); assertTrue((12345678L==r.getPointId()) && (1506790800 == r.getBaseTime())); }