Salve a tutti, sto cercando di scrivere un'espressione SpEL per ottenere un Set a partire da una Stringa (che verrà splittata).

Faccio questo perché devo passare dei valori filtro (stringhe) ad un bean attraverso i parametri del job. Il problema è che questo bean (che non ho scritto io e che non posso modificare) accetta solo Set<String> e attraverso i JobParameters non posso passare altro che String, Long, Date e poco altro...

Detto questo, ho fatto questo piccolo test per verificare l'espressione ma non capisco perché il risultato è sbagliato:

codice:
ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("new java.util.TreeSet(T(java.util.Arrays).asList(new java.lang.String('7;9').split(';')))");
System.out.println("Value type = " + exp.getValueType());

TreeSet<String> set = (TreeSet<String>) exp.getValue();
System.out.println("SET= " + set);

for ( Object o : set )
{
    System.out.println("OGGETTO = " + o);
    System.out.println("CLASSE = " + o.getClass());
}
Come output mi aspetto di vedere i due valori 7 e 9, di classe String. Questo invece è quello che ottengo:

Value type = class java.util.TreeSet
SET= [[Ljava.lang.String;@4f4db0e3]
OGGETTO = [Ljava.lang.String;@4f4db0e3
CLASSE = class [Ljava.lang.String;

In pratica sembra che la chiamata a asList non venga fatta, infatti mi trovo l'array non splittato all'interno del TreeSet. Perché? Cosa sbaglio? Grazie