### Question:
RowImpl extends AbstractRow { @Override public <T> Optional<T> get(Column<T> column) { return values.get(column) .map(CastUtils::as); } private  RowImpl(Schema schema, Map<Column<?>, Object> values); @Override Optional<T> get(Column<T> column);  }### Answer:
@Test public void testGet() { Row row = createRow(); Optional<String> a = row.get(A); assertThat(a).hasValue("foo"); Optional<Integer> b = row.get(B); assertThat(b).hasValue(Integer.valueOf(0)); assertThat(row.get(C)).isEmpty(); }
@Test public void testWrongType() { Row row = createRow(); Column<String> wrongB = Column.of("b", String.class); assertThat(row.get(wrongB)).isEmpty(); }