Sunday, March 18, 2018

Groovy - @Canonical = @EqualsAndHashCode + @ToString + @TupleConstructor


@Canonical = @EqualsAndHashCode + @ToString + @TupleConstructor

import groovy.transform.Canonical;
import groovy.transform.EqualsAndHashCode;
import groovy.transform.ToString;
import groovy.transform.TupleConstructor;

@EqualsAndHashCode
@ToString
@TupleConstructor
//@Canonical
class Product {
    int id
    String name
    def price
}

Product p_orig new Product(id:1,name:'name',price:9.99)
Product p_copy new Product(id:1,name:'name',price:9.99)
Product p_diff new Product(id:2,name:'other',price:5)
Product p2 new Product(3'abc'10// tuple consturctor

assert p_orig == p_copy // equals and hashcode
assert !p_orig.is(p_copy)
assert p_orig != p_diff
assert p_orig.toString(== 'Product(1, name, 9.99)'//toString

Set<Productproducts [p_origp_copyp_diff]
assert products.size(== //equals and hashcode


--------------------------------------------------------------------------------------

No comments:

Post a Comment

உப்பு மாங்காய்

சுருக்குப்பை கிழவி. சுருக்கங்கள் சூழ் கிழவி. பார்க்கும் போதெல்லாம் கூடையுடனே குடியிருப்பாள். கூடை நிறைய குட்டி குட்டி மாங்காய்கள். வெட்டிக்க...