Приведение от объекта к карте в Java

#java

Вопрос:

Я реализовал метод, который возвращает a CompletableFuture<Object> , и внутри метода я использую a Map<String, Long> , и это объект, который я возвращаю, и приведение выполняется автоматически.

Затем я хочу использовать результат этого метода для другой функции, и внутри новой функции мне нужно десериализовать объект в Map<String, Long> . Можно ли сделать обычный слепок или мне следует сделать что-то другое?

 @Override
    public CompletableFuture<Boolean> process(String name, Object data, Object message) {

        switch (name) {
            case ("first"):

                Map<String, Long> finalAmount = (Map<String, Long>) data;
 

Правильно ли этот способ сделать актерский состав?

Комментарии:

1. Актерский состав правильный, но почему вы CompletableFuture<Object> в первую очередь используете а вместо а CompletableFuture<Map<String, Long>> ?

2. потому что эта функция может использовать и другие типы коллекций, а не только Map…so вот почему я сделал это как можно более общим

3. Приведение в порядке, но почему бы вам не сделать метод, создающий CompletableFuture, обобщенным, чтобы он возвращал именно тот тип, который вам нужен?

4. Для конкретного случая, в котором Object data передается тип Map <String, Long> , приведение будет работать в вашем примере кода. В этом случае вы также можете пройти Map <String, Long> data напрямую, что сделает бросок ненужным. Для общего решения, которое передает другой тип, приведение завершится неудачей. Поэтому вам придется проверить тип перед броском.