必须在提示词中明确约束输出结构和解释义务,否则gemini常只给改后代码而跳过推理;需强制三段式格式(原代码→修改后→理由),理由须指向jvm行为、空安全等具体维度,并禁用模糊表述。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要让Gemini在给出代码迁移建议时同步说明每处修改的具体原因,必须在提示词中明确约束其输出结构和解释义务,否则它常只给改后代码而跳过推理过程。
基础提示词结构:强制带理由的三段式
第一句定义角色:“你是一名资深Java到Kotlin迁移工程师,专注重构逻辑而非语法转换。”
第二句锁定输出格式:“每次修改必须按‘原代码→修改后→理由’三行呈现,理由需指向JVM行为、空安全、协程兼容性或Kotlin惯用法之一。”
第三句堵住偷懒路径:“禁止使用‘更简洁’‘更现代’等模糊表述;若某行无需修改,必须写明‘保留,因语义与Kotlin完全一致’。”
针对空安全漏洞的精准触发写法
方法一:用错误示例反向锚定
在提示词里直接粘贴一段含可空类型误用的Java代码,末尾加:“请逐行检查该代码在Kotlin中触发NullPointerException的风险点,并对每个风险点标注:①对应Kotlin修改行 ②该修改如何阻断NPE ③若不改,运行时在哪种输入条件下崩溃。”
方法二:限定理由关键词
追加约束:“理由中必须出现且仅出现以下任一关键词:‘非空断言会抛出异常’‘平台类型未做空检查’‘lateinit无法覆盖原始字段生命周期’‘?.操作符替代了if判空嵌套’。”【缺少任一关键词则整条理由视为无效】
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
要求对比式理由说明
第一步:声明对比维度
“所有理由必须基于Java原实现与Kotlin新实现的差异展开,从字节码生成、编译期校验、运行时开销三个维度中至少选一个说明。”
第二步:禁用泛化描述
删掉提示词里所有“提升可读性”“增强健壮性”类短语,替换为“说明此处修改使Kotlin编译器能提前捕获XX异常”或“此处改用内联函数使字节码减少XX条指令”。
第三步:绑定上下文证据
“理由中必须引用原代码第X行的变量名或方法签名,例如‘第12行getUser()返回值在Java中为Object,在Kotlin中声明为User?,故需添加!!操作符——但此举将把空检查时机从运行时推迟到调用点,因此改用let{...}确保空安全’。”










