|
|
|
|
@ -72,6 +72,7 @@ class GenericTypeResolverTests {
@@ -72,6 +72,7 @@ class GenericTypeResolverTests {
|
|
|
|
|
void methodReturnTypes() { |
|
|
|
|
assertThat(resolveReturnTypeArgument(findMethod(MyTypeWithMethods.class, "integer"), MyInterfaceType.class)).isEqualTo(Integer.class); |
|
|
|
|
assertThat(resolveReturnTypeArgument(findMethod(MyTypeWithMethods.class, "string"), MyInterfaceType.class)).isEqualTo(String.class); |
|
|
|
|
assertThat(resolveReturnTypeArgument(findMethod(MyTypeWithMethods.class, "character"), MyAbstractType.class)).isEqualTo(Character.class); |
|
|
|
|
assertThat(resolveReturnTypeArgument(findMethod(MyTypeWithMethods.class, "raw"), MyInterfaceType.class)).isNull(); |
|
|
|
|
assertThat(resolveReturnTypeArgument(findMethod(MyTypeWithMethods.class, "object"), MyInterfaceType.class)).isNull(); |
|
|
|
|
} |
|
|
|
|
@ -137,6 +138,12 @@ class GenericTypeResolverTests {
@@ -137,6 +138,12 @@ class GenericTypeResolverTests {
|
|
|
|
|
assertThat(x).isEqualTo(Long.class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void resolveTypeArgumentsOfAbstractType() { |
|
|
|
|
Class<?>[] resolved = GenericTypeResolver.resolveTypeArguments(MyConcreteType.class, MyAbstractType.class); |
|
|
|
|
assertThat(resolved).containsExactly(Character.class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test // SPR-11030
|
|
|
|
|
void getGenericsCannotBeResolved() throws Exception { |
|
|
|
|
Class<?>[] resolved = GenericTypeResolver.resolveTypeArguments(List.class, Iterable.class); |
|
|
|
|
@ -240,6 +247,12 @@ class GenericTypeResolverTests {
@@ -240,6 +247,12 @@ class GenericTypeResolverTests {
|
|
|
|
|
public class MyCollectionInterfaceType implements MyInterfaceType<Collection<String>> { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public abstract class MyAbstractType<T> implements MyInterfaceType<T> { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public class MyConcreteType extends MyAbstractType<Character> { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public abstract class MySuperclassType<T> { |
|
|
|
|
|
|
|
|
|
public void upperBound(List<? extends T> list) { |
|
|
|
|
@ -274,6 +287,8 @@ class GenericTypeResolverTests {
@@ -274,6 +287,8 @@ class GenericTypeResolverTests {
|
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public MyConcreteType character() { return null; } |
|
|
|
|
|
|
|
|
|
public Object object() { |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|