"errorMessage": "java.lang.Integer не может быть приведен к java.lang.Double" - PullRequest
0 голосов
/ 06 марта 2019

У меня есть этот код для развертывания через 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();
    }
}

1 Ответ

0 голосов
/ 06 марта 2019

Определите POJO для типа ввода, проблема в том, что информация о типе недоступна при десериализации и выводится из данных.

class MyPojo {
  List<Double> x;
}

public class Handler implements RequestHandler<MyPojo, ApiGatewayResponse> {
    private static final Logger LOG = Logger.getLogger(Handler.class);

    @Override
    public ApiGatewayResponse handleRequest(MyPojo event, Context context) {
        // event.x is now a list of doubles
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...