Я пытаюсь построить модель микросимуляции с помощью Groovy, но у меня возникла проблема, связанная с обработкой нулевыми значениями в Groovy конструкторов Groovy Bean.
Короче говоря, метод конструктора , который предлагает Groovy
new Person(nrLegs:calculationResult1, nrArms:calculationResult2)
, выдает IllegalArgumentException
, если один из результатов вычисления равен нулю, как я и считал отсутствующимлучше всего представить данные опроса.
Это то, что мне кажется странным: если я определяю переменную double age;
без значения, она, очевидно, устанавливается в ноль.
double testDouble;
assert testDouble == null; // no Problem
ЕслиЯ делаю то же самое с бобами Groovy, у него значение 0.0, например:
class Person {
double age;
int nrLegs, nrArms;
}
затем
Person testPerson = new Person(nrArms:calculationResult1)
assert testPerson.age == null; // Assertion failed. testPerson.age == 0.0
Более того, я не могу установить нулевые свойства, используя синтаксис Groovy:1021 *
Person testPerson = new Person(nrArms:calculationResult1)
testPerson.age = null; // IllegalArgumentException
Кажется, это та же проблема, что и выше.
Почему Groovy запрещает мне присваивать нулевые значения?
Спасибо за вашу помощь!
Редактировать : для справки: весь класс Person и StackTrace .