### Question:
DataType implements Serializable { public abstract DataType bridgedTo(Class<?> newConversionClass); DataType(LogicalType logicalType, @Nullable Class<?> conversionClass); LogicalType getLogicalType(); Class<?> getConversionClass(); abstract DataType notNull(); abstract DataType nullable(); abstract DataType bridgedTo(Class<?> newConversionClass); abstract R accept(DataTypeVisitor<R> visitor); @Override String toString(); @Override boolean equals(Object o); @Override int hashCode();  }### Answer:
@Test public void testAtomicConversion() { assertThat( TIMESTAMP(0).bridgedTo(java.sql.Timestamp.class), hasConversionClass(java.sql.Timestamp.class)); }
@Test(expected = ValidationException.class) public void testInvalidAtomicConversion() { TIMESTAMP(0).bridgedTo(DataTypesTest.class); }
@Test(expected = ValidationException.class) public void testInvalidArrayConversion() { ARRAY(ARRAY(INT())).bridgedTo(int[][][].class); }
@Test public void testTolerantMapConversion() { assertThat( MULTISET(MULTISET(INT().bridgedTo(int.class))), hasConversionClass(Map.class)); }
@Test public void testConversionEquality() { assertEquals(DataTypes.VARCHAR(2).bridgedTo(String.class), DataTypes.VARCHAR(2)); }