Как решить EI_EXPOSE_REP2 и почему это неправильно

Я запустил FindBugs в своем проекте и получил следующее предупреждение:

new foo.pkg.Key(Client, Product, Date, String) may expose internal representation by storing an externally mutable object into Key.expireDate   MALICIOUS_CODE  EI_EXPOSE_REP2  60  Medium

Key— это Entity с Date expireDate, с соответствующими геттерами и сеттерами, и использует их в конструкторе.

Итак, что случилось? Почему собственно неправильно это делать? Это потому, что Date является изменяемым типом?

На самом деле, я просто возвращаю (дата) dataNascimento.clone()и использую ту же стратегию в установщике. Это лучший способ сделать это?

5
задан caarlos0 5 August 2013 в 18:08
поделиться