首页 > 解决方案 > Spring Boot 中的 Stripe 示例 java 服务器?不兼容的类型:可选无法转换为源

问题描述

在用于条带支付演示的 java 服务器中,有 4 种 java 类型转换,例如:

由于缺少文档,我无法运行该服务器。我正在使用 IDEA Intellij 2020,并且我有一个 Spring Boot 1.5.9 服务器,我愿意在其中实施它。

在 intellij 中复制代码并为 spring 调整控制器后,我有很多转换错误:

error: incompatible types: Optional<StripeObject> cannot be converted to Source

为什么原来的可以执行那个演员,为什么我的 spring 实现不能执行它?

标签: javaspringspring-bootstripe-payments

解决方案


您所指的示例似乎正在使用已弃用的 API,并且EventDataObjectDeserializer 返回Optional<StripObject>的实际版本,因此您应该按照建议更新您的代码:

Event event = Webhook.constructEvent(payload, sigHeader, secret);
EventDataObjectDeserializer dataObjectDeserializer = event.getDataObjectDeserializer();
if (dataObjectDeserializer.getObject().isPresent()) {
    StripeObject stripeObject = dataObjectDeserializer.getObject().get();
    doSomething(stripeObject);
} else {
    throw new IllegalStateException(
    String.format("Unable to deserialize event data object for %s", event));
}

推荐阅读