我是新来的,我希望你能帮助我。 我有一个javascript函数,我调用这样的函数:
var criticalDateStart = new Date(1525683802394);
var criticalDateEnd = new Date(1525770202394);
var users = enumerateUsers({
userId : userId,
criticalDateStart : criticalDateStart.getTime(),
criticalDateEnd : criticalDateEnd.getTime(),
});
此外,我在服务器上有一个lambda函数,如下所示:
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
和结束行。{/ p>
答案 0 :(得分:0)
在您的Java代码中看起来criticalDateStart
和criticalDateEnd
是双倍的,而不是长的。你能做什么:
long criticalDateStart = ((Double)_arg.get("criticalDateStart")).longValue();
long criticalDateEnd = ((Double)_arg.get("criticalDateEnd")).longValue();
答案 1 :(得分:0)
尝试使用Double
的方法longValue()
。
Long criticalDateStart = ((Double) _arg.get("criticalDateStart")).longValue();