Merge branch '5.1.x'
This commit is contained in:
commit
be65bef91b
|
@ -1013,7 +1013,7 @@ public class ResolvableType implements Serializable {
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean isAssignableFrom(ResolvableType other) {
|
public boolean isAssignableFrom(ResolvableType other) {
|
||||||
Class<?> otherClass = other.getRawClass();
|
Class<?> otherClass = other.resolve();
|
||||||
return (otherClass != null && (clazz == null || ClassUtils.isAssignable(clazz, otherClass)));
|
return (otherClass != null && (clazz == null || ClassUtils.isAssignable(clazz, otherClass)));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -134,6 +134,18 @@ public class ResolvableTypeTests {
|
||||||
assertThat(type.isAssignableFrom(String.class)).isTrue();
|
assertThat(type.isAssignableFrom(String.class)).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void forRawClassAssignableFromTypeVariable() { // gh-23321
|
||||||
|
ResolvableType typeVariable = ResolvableType.forClass(ExtendsList.class).as(List.class).getGeneric();
|
||||||
|
ResolvableType raw = ResolvableType.forRawClass(CharSequence.class);
|
||||||
|
assertThat(raw.resolve()).isEqualTo(CharSequence.class);
|
||||||
|
assertThat(typeVariable.resolve()).isEqualTo(CharSequence.class);
|
||||||
|
assertThat(raw.resolve().isAssignableFrom(typeVariable.resolve())).isTrue();
|
||||||
|
assertThat(typeVariable.resolve().isAssignableFrom(raw.resolve())).isTrue();
|
||||||
|
assertThat(raw.isAssignableFrom(typeVariable)).isTrue();
|
||||||
|
assertThat(typeVariable.isAssignableFrom(raw)).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void forInstanceMustNotBeNull() {
|
public void forInstanceMustNotBeNull() {
|
||||||
assertThatIllegalArgumentException().isThrownBy(() ->
|
assertThatIllegalArgumentException().isThrownBy(() ->
|
||||||
|
|
Loading…
Reference in New Issue