@Override
    public TypeInformation<T> getProducedType() {
        return type;
    }
@Test
    void testTypeExtractionTupleAnonymous() {
        TypeInformation<Tuple2<byte[], byte[]>> type =
                new AbstractDeserializationSchema<Tuple2<byte[], byte[]>>() {
                    @Override
                    public Tuple2<byte[], byte[]> deserialize(byte[] message) {
                        throw new UnsupportedOperationException();
                    }
                }.getProducedType();

        TypeInformation<Tuple2<byte[], byte[]>> expected =
                TypeInformation.of(new TypeHint<Tuple2<byte[], byte[]>>() {});
        assertThat(type).isEqualTo(expected);
    }