首页 / 资讯中心 / 文章详情

AI 生成的代码引用了不存在的 API:两种 API 幻觉和防范方法

AI 生成的代码引用了不存在的 API:两种 API 幻觉和防范方法 ★ FEATURED ARTICLE
AI 写的代码,编译不通过。红了一片:java: 找不到符号 符号: 方法 parseObject(java.lang.String) 位置: 类 com.xxx.util.JsonUtilsJsonUtils这个类是我们项目里的,方法就那几个。AI 用了一个里面没有的方法。它编的。先说好消息:这类错误最容易发现编译不过其实是幸运的。编译器会说“找不到符号”,红色的波浪线画在那儿,你想忽略都难。改掉就行,成本两分钟。这类幻觉也是最好识别的,因为它造得出来但编不圆:方法名编得挺像,参数签名不对类名对,方法是编的包名编了一个不存在的调用了某个库“应该有但没有”的便捷方法我遇到过的还有:AI 给List编了个sortedBy()方法(其实是 Kotlin 的),给String编了个toDate(),给某个 ORM 编了个不存在的链式方法。这些都是“看起来合理但不存在”的东西。编译器一拦,问题解决。真正危险的是另一类:那个方法真的存在有这么两行:importorg.springframework.beans.BeanUtils;BeanUtils.copyProperties(orderDTO,order);编译通过,运行正常,没有报错。但数据是错的。因为BeanUtils.copyProperties有两套,参数顺序是反的:// Spring:源在前,目标在后
阅读完成 · 觉得有帮助?
咨询建站