Consistent resolution of Class methods and static methods

Issue: SPR-12502
(cherry picked from commit 9ef0bdc)
This commit is contained in:
Juergen Hoeller
2014-12-03 23:03:24 +01:00
parent 9413204838
commit 4c5e17ec3e
2 changed files with 38 additions and 9 deletions

View File

@@ -1835,6 +1835,14 @@ public class SpelReproTests extends ExpressionTestCase {
assertEquals(1, exp.getValue(sec));
}
@Test
public void SPR12502() throws Exception {
SpelExpressionParser parser = new SpelExpressionParser();
Expression expression = parser.parseExpression("#root.getClass().getName()");
assertEquals(UnnamedUser.class.getName(), expression.getValue(new UnnamedUser()));
assertEquals(NamedUser.class.getName(), expression.getValue(new NamedUser()));
}
private static enum ABC { A, B, C }
@@ -1976,4 +1984,16 @@ public class SpelReproTests extends ExpressionTestCase {
public static final int X = 1;
}
public static class UnnamedUser {
}
public static class NamedUser {
public String getName() {
return "foo";
}
}
}