静的な静的配列の値にはアクセスできません。Jtwigテンプレートから静的定数配列にアクセスする
これは私のコードで配列になりましょう:
public static int[] MY_ARRAY;
そして、これは私がその配列にアクセスしようとする方法である:
{{ constant("com.package.configs.MainConfig.MY_ARRAY")[0] }}
この試みはエラーにつながる:
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)
...
変数に最初に定数を代入してアクセスしようとしましたが、何も変わりませんでした。
以前のバージョンのJTwigでは、モデルに渡されたオブジェクトの公開静的フィールドにアクセスできました。しかし、今ではこのようなフィールドは無視されています。
私が使用しているバージョンは5.86.0です。 これを克服する方法や、現時点では技術的に不可能なことはありますか?
はい、ヒントのおかげで、これは意図したとおりに動作します。しかし、もし私が作業しようとしているコードを変更することができないのですか? インスタンス用です。私はNashornから任意の配列(オブジェクトまたはプリミティブ)にアクセスできます。 – VirtualVoid
私はNashornを知らないのですが、異なる型引数を持つ複数のオーバーロードメソッドがあると思います。異なる型引数を使用して呼び出す場合は、実際は別のメソッドを呼び出しています。 – Leeqihe