java - 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 实现不能执行它?
解决方案
您所指的示例似乎正在使用已弃用的 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));
}