Ich habe eine Methode, die wie folgt auf Java aussieht:JSR223: Aufruf Java „varargs“ Methoden aus Skript
public void myMethod(Object... parms);
Aber ich kann diese Methode nicht aufrufen, wie aus den Skripten erwartet.
Wenn in Rubin, ich mache:
$myObject.myMethod(42);
Es mir org.jruby.exceptions.RaiseException: could not coerce Fixnum to class [Ljava.lang.Object
gibt Wenn ich folgend in Javascript versuchen:
myObject.myMethod(42);
Dann gibt es mir sun.org.mozilla.javascript.internal.EvaluatorException: Can't find method MyClass.test(number). (#2) in at line number 2
Natürlich, wenn ich die Signatur ändere, um einen zu singen Das Objekt funktioniert dann.
Ich nehme an, dass dies daran liegt, dass jemand entlang der Linie nicht zu konvertieren, sagen wir Integer
zu Integer[]
mit dem Wert an der ersten Position.
Ich glaube, so etwas wie myMethod({42, 2009})
würde in Ruby funktionieren, aber das scheint hässlich - ich wollte einfach myMethod(42, 2009)
tun, um es weniger verwirrend, speziell für andere Sprachen zu machen. Gibt es dafür einen besseren Workaround?
Danke.
ein anderes Beispiel: jruby -rjava-‚fmt = java.util.Formatter.new(); puts fmt.format ("|% 4s |", ["üü"]. to_java) ' – reto