java - 歧管 load().fromJson() 抛出 java.lang.ClassCastException
问题描述
我遵循了https://github.com/manifold-systems/manifold/tree/master/manifold-deps-parent/manifold-json下的文档并部署了一个 jar,它仅提供 User 类,使用 Maven 编译插件作为记录:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<compilerArgs>
<!-- Configure manifold plugin-->
<arg>-Xplugin:Manifold</arg>
<arg>-Amanifold.source.json=^com\.example\.schemas\.User$</arg>
</compilerArgs>
<!-- Add the processor path for the plugin (required for Java 9+) -->
<annotationProcessorPaths>
<path>
<groupId>systems.manifold</groupId>
<artifactId>manifold-json</artifactId>
<version>2020.1.44</version>
</path>
</annotationProcessorPaths>
</configuration>
我的另一个项目将此包用作依赖项,并且以下代码可以正常工作:
import com.example.schemas.User;
...
User user = User.builder("Scott McKinney", "scott@manifold.systems")
.build();
但这会引发异常:
User user = User.load().fromJson("{\"name\": \"Scott McKinney\", \"email\": \"scott@manifold.systems\"}");
java.lang.ClassCastException: class manifold.json.rt.api.DataBindings
cannot be cast to class com.example.schemas.User (manifold.json.rt.api.DataBindings
and com.example.schemas.User are in unnamed module of loader 'app')
解决方案
推荐阅读
- python - 检查第一个字符串列表中的元素是否出现在第二个字符串列表中
- javascript - 散景,CustomJS问题中的python回调
- tensorflow - ResNet 和 ConvNet 的结合
- kubernetes - 如果我们需要的是一组相同 Pod 中每个 Pod 的一致标识符,那么 Kubernetes StatefulSet 是否是正确的答案?
- node.js - 使用 shopify-api-node 获取给定集合 id 的所有“集合”
- angular - npm 安装失败,不推荐使用 npm WARN
- nestjs - 如何在nest.js TypeORM中写where条件,日期小于或等于某个值?
- asp.net - 为什么即使IF条件不满足,IF条件也会受到影响?
- c# - 将 datagridview 数据导出到 Excel 工作表
- python - 当我将参数 class_weight 添加到 CNN 时,内核死亡