用途:把 Java 系统迁移到 Swift,目标是能力与行为等价,而不是逐行相似;Swift 能编译只是中间检查点。
主要能力与要求:清点范围内每个 Java 类、接口、枚举、record、注解、嵌套类型、构造器、方法及对外可见契约;每条记录必须为已实现、有证据地适配或经批准明确排除,桩、fatalError、空实现、占位符和静默遗漏都不算完成。除经批准的有意变更外,需保留值、错误、顺序、状态、并发、序列化、资源与副作用。可用 Swift 原生架构替换 Java 机制,但不能降低能力。在 swift-java-migration-testing 通过完整源码测试与差分门禁前不得宣布完成。
工作流:1)冻结范围与基线,记录源/目标提交、Java 与 Swift 工具、模块/目标、生成源码、平台、特性开关、外部依赖与排除项,先捕获 Java 构建/测试基线;2)建立源码台账,字段至少含 java_key、kind、target_path、target_symbol、status、evidence、notes,重载用完整方法签名,嵌套类型、有运行时含义的注解、接口默认实现独立跟踪,并在 CI 中核对台账;3)设计语义适配器,把 Java 模块/包映射为一致的 SwiftPM 目标与模块,接口仅在关联类型、存在类型使用、身份与默认实现仍有效时映射为协议,CompletableFuture/Reactor 仅在取消、顺序、背压、调度与错误语义明确后映射为 async/await 或 AsyncSequence,用显式注册表、生成元数据、actor/锁、任务上下文与类型化错误替换反射、注解、服务加载、代理、同步、线程局部与受检异常,并保持线上/存储模式独立于内存中的 Swift 表示;选择映射前先阅读 Swift 迁移适配器;4)按垂直切片实现,契约、生产行为、Java 测试、复制资产、差分用例与 Swift 专属测试一起迁移,不要等全部源文件翻译完再补等价性测试;5)保留文档,把语义化 Javadoc、参数/返回/错误契约、线程安全说明、生命周期规则与兼容性约束翻译为 Swift 文档注释;6)运行门禁:swift build、swift test,然后运行专用的 <project>-test 验收包/目标并完成 Java/Swift 差分套件。
状态报告:生产对象、成员、源码测试用例、资产、差分用例与 Swift 专属义务分别给出分母,不得合并为单一百分比,也不得以覆盖率替代迁移完整性。
限制:资料未提供具体支持平台、价格、安装命令或性能数据;实际使用需结合项目自身基线与测试门禁。