@ -519,6 +519,30 @@ public class ResolvableTypeTests {
assertThat ( generic . resolve ( ) , equalTo ( ( Class ) String [ ] . class ) ) ;
}
@Test
public void resolveVariableGenericArray ( ) throws Exception {
ResolvableType type = ResolvableType . forField ( Fields . class . getField ( "variableTypeGenericArray" ) , TypedFields . class ) ;
assertThat ( type . getType ( ) . toString ( ) , equalTo ( "T[]" ) ) ;
assertThat ( type . isArray ( ) , equalTo ( true ) ) ;
assertThat ( type . resolve ( ) , equalTo ( ( Class ) String [ ] . class ) ) ;
}
@Test
public void resolveVariableGenericArrayUnknown ( ) throws Exception {
ResolvableType type = ResolvableType . forField ( Fields . class . getField ( "variableTypeGenericArray" ) ) ;
assertThat ( type . getType ( ) . toString ( ) , equalTo ( "T[]" ) ) ;
assertThat ( type . isArray ( ) , equalTo ( true ) ) ;
assertThat ( type . resolve ( ) , nullValue ( ) ) ;
}
@Test
public void resolveVariableGenericArrayUnknownWithFallback ( ) throws Exception {
ResolvableType type = ResolvableType . forField ( Fields . class . getField ( "variableTypeGenericArray" ) ) ;
assertThat ( type . getType ( ) . toString ( ) , equalTo ( "T[]" ) ) ;
assertThat ( type . isArray ( ) , equalTo ( true ) ) ;
assertThat ( type . resolve ( Object . class ) , equalTo ( ( Class ) Object . class ) ) ;
}
@Test
public void resolveWildcardTypeUpperBounds ( ) throws Exception {
ResolvableType type = ResolvableType . forField ( Fields . class . getField ( "wildcardType" ) ) ;
@ -1253,6 +1277,8 @@ public class ResolvableTypeTests {
public Map < Map < String , Integer > , Map < Byte , Long > > nested ;
public T [ ] variableTypeGenericArray ;
}