1
Кажется, что добавление закрытого ключевого слова в поля класса дает странное поведение. Следующий код прерывается, когда используется ключевое слово private, и в противном случае это не так. Может кто-нибудь, пожалуйста, подтвердите это?Ошибка в закрытых полях Groovy вызывает странное поведение?
@groovy.transform.EqualsAndHashCode
class Cell{
private int x; //adding private keyword to the fields causes test to give a false positive
private int y; //adding private keyword to the fields causes test to give a false positive
Cell(_x,_y){
x = _x;
y = _y;
}
}
def liveCells = [] as Set
Cell cell = new Cell(0,0);
Cell diffCell = new Cell(1,1);
liveCells.add(cell)
assert liveCells.contains(cell) == true
assert liveCells.contains(diffCell) == false //test fails due to private keyword to the fields. remove private keywords and the test passes.
Спасибо !! :) Поскольку я новичок в groovy, могу я знать, где узнать больше об этих аннотации/Apis и их использовании? [Groovy document] (http://groovy.codehaus.org/gapi/groovy/transform/EqualsAndHashCode.html) ничего не упоминает (includeFields = true). Еще раз спасибо за вашу помощь. :) – user3240644
Извините, он упоминает includeFields полностью в нижней части страницы. Но кажется, что все поля (независимо от того, являются ли они публичными или частными) по умолчанию не включены. Я понимаю, что неправильно? Или документ неверен? :П – user3240644