Browse Source

Document that SpEL expressions using array construction cannot be compiled

Closes gh-32401
pull/32403/head
Sam Brannen 2 years ago
parent
commit
528029a0ba
  1. 1
      framework-docs/modules/ROOT/pages/core/expressions/evaluation.adoc
  2. 18
      framework-docs/modules/ROOT/pages/core/expressions/language-ref/array-construction.adoc

1
framework-docs/modules/ROOT/pages/core/expressions/evaluation.adoc

@ -518,6 +518,7 @@ following kinds of expressions cannot be compiled.
* Expressions relying on the conversion service * Expressions relying on the conversion service
* Expressions using custom resolvers or accessors * Expressions using custom resolvers or accessors
* Expressions using overloaded operators * Expressions using overloaded operators
* Expressions using array construction syntax
* Expressions using selection or projection * Expressions using selection or projection
Compilation of additional kinds of expressions may be supported in the future. Compilation of additional kinds of expressions may be supported in the future.

18
framework-docs/modules/ROOT/pages/core/expressions/language-ref/array-construction.adoc

@ -13,7 +13,7 @@ Java::
int[] numbers1 = (int[]) parser.parseExpression("new int[4]").getValue(context); int[] numbers1 = (int[]) parser.parseExpression("new int[4]").getValue(context);
// Array with initializer // Array with initializer
int[] numbers2 = (int[]) parser.parseExpression("new int[]{1,2,3}").getValue(context); int[] numbers2 = (int[]) parser.parseExpression("new int[] {1, 2, 3}").getValue(context);
// Multi dimensional array // Multi dimensional array
int[][] numbers3 = (int[][]) parser.parseExpression("new int[4][5]").getValue(context); int[][] numbers3 = (int[][]) parser.parseExpression("new int[4][5]").getValue(context);
@ -26,14 +26,22 @@ Kotlin::
val numbers1 = parser.parseExpression("new int[4]").getValue(context) as IntArray val numbers1 = parser.parseExpression("new int[4]").getValue(context) as IntArray
// Array with initializer // Array with initializer
val numbers2 = parser.parseExpression("new int[]{1,2,3}").getValue(context) as IntArray val numbers2 = parser.parseExpression("new int[] {1, 2, 3}").getValue(context) as IntArray
// Multi dimensional array // Multi dimensional array
val numbers3 = parser.parseExpression("new int[4][5]").getValue(context) as Array<IntArray> val numbers3 = parser.parseExpression("new int[4][5]").getValue(context) as Array<IntArray>
---- ----
====== ======
[NOTE]
====
You cannot currently supply an initializer when you construct a multi-dimensional array. You cannot currently supply an initializer when you construct a multi-dimensional array.
====
[CAUTION]
====
Any expression that constructs an array – for example, via `new int[4]` or
`new int[] {1, 2, 3}` – cannot be compiled. See
xref:core/expressions/evaluation.adoc#expressions-compiler-limitations[Compiler Limitations]
for details.
====

Loading…
Cancel
Save