Как получить длинное значение в лямбда-функции? - PullRequest
0 голосов
/ 22 мая 2018

Я новичок здесь, и я надеюсь, что вы мне поможете.У меня есть функция JavaScript, и там я вызываю функцию, как это:

var criticalDateStart = new Date(1525683802394);
var criticalDateEnd = new Date(1525770202394);

var users = enumerateUsers({
    userId : userId,
    criticalDateStart : criticalDateStart.getTime(),
    criticalDateEnd : criticalDateEnd.getTime(),
});

Кроме того, у меня есть лямбда-функция на сервере, которая выглядит так:

Function<Object, Object> enumeratePatients = (arg) -> {

        if (arg instanceof ScriptObjectMirror) {
            ScriptObjectMirror _arg = (ScriptObjectMirror) arg;
            Integer userId = (Integer) _arg.get("userId");
            Long criticalDateStart = (Long)_arg.get("criticalDateStart");   
            Long criticalDateEnd = (Long)_arg.get("criticalDateEnd");

            ResteasyClient client = new ResteasyClientBuilder().build();
            ResteasyWebTarget rtarget = client.target(Url);
            Rest rest = rtarget.proxy(Rest.class);
                return rest.enumerateUsers(
                         new EnumerateUserParameter(
                           userId, 
                           criticalDateStart, 
                           criticalDateEnd));
            }
            return null;
        };

Но этовозвращает ошибку

java.lang.ClassCastException: java.lang.Double нельзя привести к java.lang.Long.

В чем проблема?

Кстати, ошибка в длинной criticalDateStart и конце строки.

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Попробуйте использовать метод Double longValue().

Long criticalDateStart = ((Double) _arg.get("criticalDateStart")).longValue();
0 голосов
/ 22 мая 2018

Похоже, criticalDateStart и criticalDateEnd - это двойные, а не длинные, в вашем Java-коде.Что вы можете сделать:

long criticalDateStart = ((Double)_arg.get("criticalDateStart")).longValue();
long criticalDateEnd = ((Double)_arg.get("criticalDateEnd")).longValue();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...