Я пытаюсь инициализировать this class из библиотеки программирования ограничений JaCop от jRuby. Я использую правильный тип аргументов, но по какой-то причине, я получаю сообщение об ошибке:Вызов метода Java из JRuby бросает «no constructor for arguments error»
NameError: no constructor for arguments
(
org.jruby.RubyArray,
org.jruby.RubyArray,
org.jruby.RubyArray,
JaCoP.core.IntVar,
JaCoP.core.IntVar)
on Java::JaCoPConstraintsKnapsack::Knapsack
(root) at rb/knapsack.rb:24
Код, который он указывает на это:
k = Jacop::Knapsack.new(@values, @weights, quantity, knapsackCapacity, knapsackProfit)
Сигнатура конструктора класса Java это:
public Knapsack(int[] profits,
int[] weights,
IntVar[] quantity,
IntVar knapsackCapacity,
IntVar knapsackProfit)
Я не понимаю, почему JRuby жалуется, что конструктор не найден, потому что он должен быть в состоянии найти это.
Вы были абсолютно правы. Я должен был бросить ints, чтобы заставить его работать. – picardo