Tôi có một phương pháp mà trông như thế này trên Java:JSR223: Gọi Java "varargs" phương pháp từ kịch bản
public void myMethod(Object... parms);
Nhưng tôi không thể gọi phương pháp này như mong đợi từ các kịch bản.
Nếu trong ruby, tôi làm:
$myObject.myMethod(42);
Nó mang lại cho tôi org.jruby.exceptions.RaiseException: could not coerce Fixnum to class [Ljava.lang.Object
Nếu tôi thử như sau trong Javascript:
myObject.myMethod(42);
Sau đó, nó mang lại cho tôi sun.org.mozilla.javascript.internal.EvaluatorException: Can't find method MyClass.test(number). (#2) in at line number 2
Tất nhiên, nếu tôi thay đổi chữ ký để có một bài hát le đối tượng sau đó nó hoạt động.
Tôi giả định rằng điều này là do ai đó dọc theo dòng không biết cách chuyển đổi, giả sử Integer
thành Integer[]
với giá trị ở vị trí đầu tiên.
Tôi tin rằng một cái gì đó như myMethod({42, 2009})
sẽ hoạt động trong Ruby, nhưng điều này có vẻ xấu xí - Tôi muốn có thể chỉ làm myMethod(42, 2009)
để làm cho nó ít khó hiểu, đặc biệt cho các ngôn ngữ khác. Có cách giải quyết nào tốt hơn cho việc này không?
Cảm ơn.
một ví dụ khác: JRuby -rjava -e 'fmt = java.util.Formatter.new(); đặt fmt.format ("|% 4s |", ["üü"]. to_java) ' – reto