### Question:
RowSerializer extends TypeSerializer<Row> { @SuppressWarnings("unchecked") public RowSerializer(TypeSerializer<?>[] fieldSerializers) { this.fieldSerializers = (TypeSerializer<Object>[]) checkNotNull(fieldSerializers); this.arity = fieldSerializers.length; this.nullMask = new boolean[fieldSerializers.length]; } @SuppressWarnings("unchecked")  RowSerializer(TypeSerializer<?>[] fieldSerializers); @Override boolean isImmutableType(); @Override TypeSerializer<Row> duplicate(); @Override Row createInstance(); @Override Row copy(Row from); @Override Row copy(Row from, Row reuse); @Override int getLength(); int getArity(); @Override void serialize(Row record, DataOutputView target); @Override Row deserialize(DataInputView source); @Override Row deserialize(Row reuse, DataInputView source); @Override void copy(DataInputView source, DataOutputView target); @Override boolean equals(Object obj); @Override int hashCode(); @Override TypeSerializerSnapshot<Row> snapshotConfiguration();  }### Answer:
@Test public void testRowSerializer() { TypeInformation<Row> typeInfo = new RowTypeInfo( BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.STRING_TYPE_INFO); Row row1 = new Row(2); row1.setField(0, 1); row1.setField(1, "a"); Row row2 = new Row(2); row2.setField(0, 2); row2.setField(1, null); TypeSerializer<Row> serializer = typeInfo.createSerializer(new ExecutionConfig()); RowSerializerTestInstance instance = new RowSerializerTestInstance(serializer, row1, row2); instance.testAll(); }