Ještě doplním, že v některých případech nechceme vracet defenzivní kopii datumu.
Můžeme potlačit findbugs warning pomocí anotace.
např.
@edu.umd.cs.findbugs.annotations.SuppressWarnings(value="MALICIOUS_CODE")
private Date createdAt;
viz. maven dependency
<dependency>
<groupId>findbugs</groupId>
<artifactId>annotations</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
Fafi
2011/4/5 Libor Jelinek <[email protected]>:
> Díky za veškeré konzultace.
>
> Jinak ano, Joshua Blosh je skvělý. Kdysi dávno jsem si koupil první edici
> vydanou Gradou, ale už pár let co jsem neprogramoval se na ní jenom práší
> :-) Tohle je typ knihy do které se vyplatí investovat a i si ji třeba z
> Amazonu objednat.
>
> Libor
>
> 2011/4/5 Ladislav Thon <[email protected]>
>>
>> Předně, tohle může být někdy chtěné (i když teoretici OOP by vám za to
>> urvali hlavu). Pokud ne, getter by měl vracet kopii (někdy se říká
>> "defenzivní kopii "), ne přímo tu členskou proměnnou.
>>
>> Konkrétně u Date se dokonce někdy dělá i to, že uvnitř objektu se uchovává
>> jen long hodnota date.getTime(), každopádně getter vypadá
>>
>> Date getNarozeni() {
>> return new Date(narozeni.getTime());
>> }
>>
>> Pokud se dobře pamatuju, dobře je to popsáno v Effective Java (doporučuju
>> druhé vydání, byť myslím není dostupné v češtině).
>>
>> LT
>>