Как определить с помощью Lombok Date And Collections неизменные? - PullRequest
0 голосов
/ 08 февраля 2019

Я сталкиваюсь с дилеммой с lombok. Те, кто знает этот инструмент, знают, что очень легко объявить методы получения и установки, но когда речь идет о датах и ​​коллекциях, как мы можем объявить их неизменяемыми?

Спасибо и всего наилучшего!

1 Ответ

0 голосов
/ 08 февраля 2019

Lombok предоставляет @ Wither , что позволяет каким-то образом облегчить создание неизменных объектов.Однако это не распространяется на случаи, которые вы упомянули.

Вам придется самостоятельно управлять неизменяемостью объектов и использовать Ломбок для всех других ситуаций.

Кроме того, это пример того, как реализовать ImmutableObject с Date и Collection:

public final class ImmutableObject {
    private final Collection<String> collection;
    private final Date date;

    public ImmutableObject(final Collection<String> options, final Date createdAt) {
        this.collection = ImmutableList.copyOf(options); // guava's immutable list
        this.date = new Date(date); // must be copied to prevent caller from modifying it
    }

    public Date getDate() {
        return new Date(date); // Date is mutable
    }

    public Collection<String> getCollection() {
        return collection; // already immutable copy
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...