### Question:
WritableToValueFunction implements PairFunction<Tuple2<Writable,Writable>,K,M> { @Override public Tuple2<K,M> call(Tuple2<Writable,Writable> keyMessage) { return new Tuple2<>(keyConverter.fromWritable(keyMessage._1()), messageConverter.fromWritable(keyMessage._2())); } WritableToValueFunction(Class<K> keyClass,
                          Class<M> messageClass,
                          Class<? extends Writable> keyWritableClass,
                          Class<? extends Writable> messageWritableClass); @Override Tuple2<K,M> call(Tuple2<Writable,Writable> keyMessage);  }### Answer:
@Test public void testFunction() { WritableToValueFunction<String,String> function = new WritableToValueFunction<>(String.class, String.class, Text.class, Text.class); Tuple2<Writable,Writable> in = new Tuple2<>(new Text("bizz"), new Text("buzz")); Tuple2<String,String> out = function.call(in); assertEquals("bizz", out._1()); assertEquals("buzz", out._2()); }