Wenn ich durch schaue, habe ich nicht den Eindruck, dass es Java-Methodenaufrufe unterstützt, nur Java-Felder. (Einige ihrer Beispiele enthalten .toString()
, aber das ist eindeutig das JavaScript .toString()
und nicht das Java, da sie es verwenden, um ein Java String
-Objekt in eine JavaScript-Zeichenfolge zu konvertieren.) So zum Beispiel ihre Länge einer Zeichenfolge Beispiele alle verwenden das private Feld count
anstelle der öffentlichen Methode length()
, und ihr Vektorlängenbeispiel verwendet das private Feld elementCount
anstelle der öffentlichen Methode size()
.
Der Fehler, den Sie bekommen, ist, weil ConcurrentHashMap
kein Feld mit dem Namen size
hat.
Leider für Ihre Anfrage, ConcurrentHashMap
speichert nicht seine Größe in einem Feld —, dass seine Fähigkeit, — so denken zu vermeiden, gefährden würde blockiert ich Sie, so etwas zu schreiben haben:
select { map: x }
from java.util.concurrent.ConcurrentHashMap x
where sum(x.segments, 'it.count') < 10
zu summiere alle Segmentgrößen selbst. (Haftungsausschluss: 100% vollständig ungetestet.)
oops - meine vorherigen URLs wurden irgendwie irgendwie verstümmelt: ich meinte http://eclipse.org/forums/index.php/m/564977/ und http://www.eclipse.org/forums/index.php/m/3655/(die Endstriche machen den Unterschied.) –
@BrianHenry: Ah, OK; diese Seiten sind unendlich relevant - äh, danke. (Warum macht ein Schrägstrich so einen Unterschied? Wer schreibt Web-Software auf diese Weise ?!) – ruakh
Ich habe noch nie etwas ähnliches gesehen. aber warum es so geschrieben ist, ist vielleicht eine Frage für einen anderen Stackoverflow-Post ... –