Почему javax.money.CurrencyUnit
не распространяется от java.io.Serializable
? Все его подтипов реализации java.io.Serializable
, и на вершине, что, если вы хотите использовать его в отображении гибернации, то FindBugs остановит вас (совершенно правильно), потому что:Почему javax.money.CurrencyUnit не Serializable?
[INFO] Class com.mycompany.SiteEntity defines non-transient non-serializable instance field defaultCurrency [com.mycompany.SiteEntity] In SiteEntity.java
[INFO] Class com.mycompany.SiteEntity defines non-transient non-serializable instance field supportedCurrencies [com.mycompany.SiteEntity] In SiteEntity.java
[INFO] Class com.mycompany.UserEntity defines non-transient non-serializable instance field sessionCurrency [com.mycompany.UserEntity] In UserEntity.java
Означает ли это, что нужно использовать класс JDKCurrencyAdapter
в сводном сопоставлении спящего режима? Я бы предпочел использовать интерфейс, но если это невозможно, я буду использовать класс.
возможно потому, что CurrencyUnit является интерфейсом, и он уже расширяет другой интерфейс, поэтому он не может многократно расширять другой интерфейс. Вы всегда можете обернуть их в пользовательский класс и реализовать Serializable. – SnakeDoc
Хороший вопрос, особенно потому, что 'CurrencyUnit' утверждает, что все реализации * должны быть сериализуемыми (на платформах, обеспечивающих сериализацию). * Вы можете задать это по https://github.com/JavaMoney/jsr354-api/pulls – wero
@wero * реализациям * должен быть сериализуемым. Вы заметили, что OP указывает, что все его подтипы действительно расширяют (или реализуют) Serializable, поэтому пользовательские классы OP также должны реализовать Serializable. – SnakeDoc