Ich bin eine Geschwindigkeit Vorlagendatei (.vm), in dem das Schreiben bekomme ich diese Klasse mit Reflexion:Aufruf Java-Methoden mit Array-Parameter von Geschwindigkeit
#set ($assetEntryQuery = $portal.getClass().forName("com.liferay.portlet.asset.service.persistence.AssetEntryQuery").getConstructor().newInstance())
dann erstelle ich ein Array und rufen Sie diese Funktion:
#set ($arr = ['$category.getCategoryId()'])
$assetEntryQuery.setStart(0)
$assetEntryQuery.setEnd(6)
$assetEntryQuery.setAllCategoryIds($arr)
Leider nimmt die setAllCategoryIds ein Array long [], und kein Geschwindigkeits Array. Was ich auf der Website erhalten, ist „$ assetEntryQuery.setAllCategoryIds ($ arr)“ gedruckt wird. Hat jemand von euch eine Idee, wie es funktioniert?
Nein, es funktioniert nicht :( –
Zwei Dinge sollten wir dann überprüfen: liefert $ category.getCategoryId() eine lange zurück? Und erstellt Velocity ein Array von long [] oder Array von Object [] mit den Klammern Notation und/oder tut es versucht, diese Arrays zu ihrem gewünschten Typ zu umwandeln/konvertieren. Btw, ich habe nie versucht, liferay aber ich habe eine lange XP in Velocity –
nach dem API $ category.getCategoryId() gibt eine lange. Wie kann ich überprüfen, ob Velocity eine Reihe von langen [] erstellt oder Object []? –