Hazelcast не может отсортировать IList - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь отсортировать Hazelcast IList, используя следующий код

Класс PaymentChannelEntry

public class PaymentChannelEntry implements Serializable {

    private static final long serialVersionUID = 5416475057971472127L;
    private Long executionTimestamp; // timestamp of the time of the transaction in Zulu time zone (UTC)
    private BigDecimal transactionAmount; // The amount of the transaction that contributes to the associated payment channel

    public PaymentChannelEntry(Long executionTimestamp, BigDecimal transactionAmount) {
        this.executionTimestamp = executionTimestamp;
        this.transactionAmount = transactionAmount;
    }

    public Long getExecutionTimestamp() {
        return executionTimestamp;
    }

    public void setExecutionTimestamp(Long executionTimestamp) {
        this.executionTimestamp = executionTimestamp;
    }

    public BigDecimal getTransactionAmount() {
        return transactionAmount;
    }

    public void setTransactionAmount(BigDecimal transactionAmount) {
        this.transactionAmount = transactionAmount;
    }
}

Затем я выбираю список PaymentChannelEntry из Hazelcast IList

IList<PaymentChannelEntry> entryIList = channelStore.getChannelEntryList(channelData.getType())

Затем, когда я использую метод sort, он выдает исключение:

java.lang.UnsupportedOperationException
    at com.hazelcast.util.UnmodifiableListIterator.set(UnmodifiableListIterator.java:30)
    at java.util.List.sort(List.java:482)

Любое решение будет оценено.

Спасибо.

1 Ответ

0 голосов
/ 03 декабря 2018

Кажется, что список, возвращаемый channelStore.getChannelEntryList, не подлежит изменению, следовательно, исключение.

, если вы не можете изменить то, что возвращается, сначала сделайте копию, а затем выполните сортировку:

// example
IList<PaymentChannelEntry> result = new ArrayList<>(channelStore.getChannelEntryList(channelData.getType()));    
// now sort the list

Вышеприведенный пример является лишь примером и может не скомпилироваться, но в конечном итоге вам нужно скопировать все, что возвращается из channelStore.getChannelEntryList(channelData.getType()), в изменяемый список, а затем отсортировать его.

...