У меня есть этот код для развертывания через AWS.и моя проблема при тестировании через AWS выглядит следующим образом:
Когда я передаю значения x следующим образом:
"x": 1.0 или "x": 100.0 .... и т. д. (дробная часть равна нулю) Это выглядит как целое число, и ошибка говорит "errorMessage": "java.lang.Integer не может быть приведен к java.lang.Double" в этой строке x_Ptr [i] = str.get (i) .doubleValue ();
Если x проходит с дробью, такой как "x": 1.5 или "x": 0.444, это работает
Любой совет здесь?
public class Handler implements RequestHandler<Map<String, Object>, ApiGatewayResponse> {
private static final Logger LOG = Logger.getLogger(Handler.class);
@Override
public ApiGatewayResponse handleRequest(Map<String, Object> event, Context context) {
LOG.info("received: " + event);
List<Double> str = new ArrayList<Double>();
str = (ArrayList<Double>)(event.get("x"));
double[] x_Ptr = new double[str.size()];
for (int i = 0; i < x_Ptr.length; i++) {
x_Ptr[i] = str.get(i).doubleValue();
}
System.out.println(x_Ptr[0]);
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json");
Output bodyout = new Output(x_Ptr);
return ApiGatewayResponse.builder()
.setStatusCode(200)
.setObjectBody(bodyout)
.setHeaders(headers)
.build();
}
}