Donc, je ne peux simplement pas rassembler l'accès aux valeurs dans les tableaux statiques constants.Accéder aux tableaux constants statiques à partir du modèle Jtwig
Que ce soit un tableau dans mon code:
public static int[] MY_ARRAY;
Et voilà comment je tente d'accéder à ce tableau:
{{ constant("com.package.configs.MainConfig.MY_ARRAY")[0] }}
Cette tentative conduit à une erreur:
java.lang.ClassCastException: [I cannot be cast to [Ljava.lang.Object;
at org.jtwig.value.convert.collection.ArrayToCollectionConverter.convert(ArrayToCollectionConverter.java:11)
at org.jtwig.value.convert.CompositeConverter.convert(CompositeConverter.java:15)
at org.jtwig.render.expression.calculator.MapSelectionExpressionCalculator.calculate(MapSelectionExpressionCalculator.java:19)
at org.jtwig.render.expression.calculator.MapSelectionExpressionCalculator.calculate(MapSelectionExpressionCalculator.java:12)
at org.jtwig.render.expression.CalculateExpressionService.calculate(CalculateExpressionService.java:14)
...
J'ai également essayé d'affecter d'abord une constante à la variable, puis j'y ai accédé, mais rien n'a changé.
Auparavant, dans une ancienne version de JTwig, j'étais capable d'accéder à n'importe quel champ statique public d'un objet que je passais au modèle. Mais maintenant de tels champs sont ignorés.
La version que j'utilise est 5.86.0. Une idée sur comment vaincre ça, ou en ce moment c'est techniquement impossible?
Oui, merci pour l'indice, celui-ci fonctionne comme prévu. Mais que faire si je ne peux pas changer le code avec lequel je suis en train de travailler? Juste pour une instance. Je peux accéder à n'importe quel tableau (objet ou primitif) de Nashorn. – VirtualVoid
Je ne connais pas Nashorn, mais je pense qu'il a deux ou plusieurs méthodes de surcharge avec des arguments de type différents, donc quand vous utilisez des arguments de types différents pour appeler, vous appelez en fait différentes méthodes. – Leeqihe